Condividi tramite


Funzione IoWMIQueryAllDataMultiple (wdm.h)

La routine IoWMIQueryAllDataMultiple restituisce tutti i blocchi di dati WMI che implementano una delle classi WMI.

Sintassi

NTSTATUS IoWMIQueryAllDataMultiple(
  [in]            PVOID  *DataBlockObjectList,
  [in]            ULONG  ObjectCount,
  [in, out]       PULONG InOutBufferSize,
  [out, optional] PVOID  OutBuffer
);

Parametri

[in] DataBlockObjectList

Puntatore a una matrice di puntatori a oggetti blocchi di dati WMI. Il chiamante apre un oggetto blocco di dati per ogni classe WMI con la routine IoWMIOpenBlock. Ogni oggetto deve essere aperto con il diritto di accesso WMIGUID_QUERY.

[in] ObjectCount

Specifica il numero di voci nella matrice passata nel parametro DataBlockObjectList.

[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 il percorso di memoria per specificare il numero di byte effettivamente archiviati in OutBuffer. Se la routine ha esito negativo con codice di stato di 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_ALL_DATA di dimensioni variabili, una per ogni set di blocchi di dati restituiti. Il membro WnodeHeader.Linkage di ogni struttura WNODE_ALL_DATA contiene l'offset dall'inizio del WNODE_ALL_DATA corrente all'inizio del WNODE_ALL_DATAsuccessivo. Il blocco finale nella catena ha WnodeHeader.Linkage impostato su zero. OutBuffer deve puntare a un buffer allocato da un pool non di paging.

Valore restituito

La routine restituisce un codice NTSTATUS. I possibili valori restituiti includono:

Codice restituito Descrizione
STATUS_SUCCESS
Operazione riuscita. La routine restituisce i dati WMI nel buffer a cui punta il parametro OutBuffer. La routine restituisce anche le dimensioni, in byte, dei dati restituiti nella posizione di memoria a cui punta il parametro InOutBufferSize.
STATUS_BUFFER_TOO_SMALL
Il buffer passato dal chiamante nel parametro outbuffer è troppo piccolo. La routine restituisce le dimensioni del buffer necessarie nella posizione di memoria a cui punta il parametro InOutBufferSize.

Osservazioni

IoWMIQueryAllDataMultiple determina quali driver supportano le classi WMI specificate e invia una richiesta di IRP_MN_QUERY_ALL_DATA a ogni driver.

Se nessun driver implementa alcuna delle classi WMI specificate, la routine restituisce STATUS_SUCCESS restituisce anche un valore pari a zero nella posizione di memoria a cui punta il parametro InOutBufferSize.

Per eseguire una query su una singola classe WMI, usare IoWMIQueryAllData.

Fabbisogno

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

Vedere anche

IRP_MN_QUERY_ALL_DATA

IoWMIOpenBlock

IoWMIQueryAllData