Condividi tramite


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
STATUS_SUCCESS
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 .
STATUS_BUFFER_TOO_SMALL
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

Vedi anche

IRP_MN_QUERY_SINGLE_INSTANCE

IoWMIOpenBlock

IoWMIQuerySingleInstance

IoWMISetSingleInstance

UNICODE_STRING