Funzione IoWMIQuerySingleInstanceMultiple (wdm.h)
La routine IoWMIQuerySingleInstanceMultiple restituisce tutte le istanze del blocco dati WMI che implementano le classi WMI specificate con i nomi di istanza specificati.
Sintassi
NTSTATUS IoWMIQuerySingleInstanceMultiple(
[in] PVOID *DataBlockObjectList,
[in] PUNICODE_STRING InstanceNames,
[in] ULONG ObjectCount,
[in, out] PULONG InOutBufferSize,
[out, optional] PVOID OutBuffer
);
Parametri
[in] DataBlockObjectList
Puntatore a una matrice di puntatori di oggetti blocchi di dati WMI. Il chiamante apre un oggetto blocco dati per ogni classe WMI con la routine IoWMIOpenBlock . Ogni oggetto deve essere aperto con il diritto di accesso WMIGUID_QUERY.
[in] InstanceNames
Puntatore a una matrice di strutture UNICODE_STRING contenenti nomi di istanza. Il nnome dell'istanza nella matrice corrisponde al valore della proprietà InstanceName per la classe WMI nspecificata nella matrice a cui punta il parametro DataBlockObjectList.
[in] ObjectCount
Specifica il numero di voci nelle matrici passate nei parametri DataBlockObjectList e InstanceNames .
[in, out] InOutBufferSize
Puntatore a una posizione di memoria che specifica le dimensioni del buffer passato nel parametro OutBuffer . Se la routine ha esito positivo, aggiorna la posizione di memoria per specificare il numero di byte effettivamente archiviati in OutBuffer. Se la routine ha esito negativo con STATUS_BUFFER_TOO_SMALL, restituisce il numero di byte necessari per restituire i dati.
[out, optional] OutBuffer
Puntatore al buffer in cui la routine restituisce i dati WMI. La routine restituisce una sequenza di strutture di WNODE_SINGLE_INSTANCE di dimensioni variabili, una per ogni istanza del blocco di dati. Il membro WnodeHeader.Linkage di ogni struttura WNODE_SINGLE_INSTANCE contiene l'offset dall'inizio del WNODE_SINGLE_INSTANCE corrente all'inizio del WNODE_SINGLE_INSTANCE successivo. Il blocco finale della catena ha WnodeHeader.Linkage impostato su zero. Ogni istanza distinta del blocco di dati corrisponde a una singola classe WMI corrispondente e al nome dell'istanza. OutBuffer deve puntare a un buffer allocato da un pool non con pagine.
Valore restituito
La routine restituisce un codice NTSTATUS. I valori restituiti possibili includono:
Codice restituito | Descrizione |
---|---|
|
Operazione completata. La routine restituisce i dati WMI nel buffer a cui fa riferimento il parametro OutBuffer . La routine restituisce anche le dimensioni, in byte, dei dati restituiti nella posizione di memoria a cui fa riferimento il parametro InOutBufferSize . |
|
Il buffer passato dal chiamante nel parametro OutBuffer è troppo piccolo. La routine restituisce le dimensioni del buffer necessarie nel percorso di memoria a cui fa riferimento il parametro InOutBufferSize . |
Commenti
IoWMIQuerySingleInstanceMultiple determina quali driver possono supportare le classi e i nomi di istanza WMI specificati e genera una richiesta di IRP_MN_QUERY_SINGLE_INSTANCE a ogni driver. Ogni driver che esporta l'istanza del blocco dati con la proprietà InstanceName corrispondente restituisce i dati appropriati.
Se nessun driver implementa alcuna delle classi WMI e dei nomi di istanza specificati, la routine restituisce STATUS_SUCCESS. Restituisce anche un valore pari a zero nella posizione di memoria a cui fa riferimento il parametro InOutBufferSize .
Per eseguire una query per una singola classe WMI e un nome dell'istanza, usare la routine IoWMIQuerySingleInstance . I driver possono usare la routine IoWMISetSingleInstance per aggiornare un'istanza di classe.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Disponibile in Windows XP e versioni successive del sistema operativo Windows. |
Piattaforma di destinazione | Universale |
Intestazione | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Libreria | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |