Condividi tramite


Funzione IoWMIQuerySingleInstance (wdm.h)

La routine IoWMIQuerySingleInstance restituisce l'istanza specificata di un blocco di dati WMI.

Sintassi

NTSTATUS IoWMIQuerySingleInstance(
  [in]            PVOID           DataBlockObject,
  [in]            PUNICODE_STRING InstanceName,
  [in, out]       PULONG          InOutBufferSize,
  [out, optional] PVOID           OutBuffer
);

Parametri

[in] DataBlockObject

Puntatore a un oggetto blocco dati WMI. Il chiamante apre l'oggetto blocco dati per la classe WMI con la routine IoWMIOpenBlock . L'oggetto deve essere aperto con il diritto di accesso WMIGUID_QUERY.

[in] InstanceName

Specifica il nome dell'istanza del blocco di dati. Questo valore corrisponde al valore della proprietà InstanceName per il blocco.

[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 il 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 struttura di WNODE_SINGLE_INSTANCE di dimensioni variabili. 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_WMI_GUID_NOT_FOUND
Nessun driver implementa la classe WMI specificata.
STATUS_WMI_INSTANCE_NOT_FOUND
Nessun driver implementa un'istanza della classe WMI con la proprietà InstanceName uguale al valore specificato nel parametro InstanceName .
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

IoWMIQuerySingleInstance determina quali driver possono supportare la classe WMI specificata con il nome dell'istanza specificato e genera una richiesta di IRP_MN_QUERY_SINGLE_INSTANCE a ogni driver. Il driver che esporta l'istanza del blocco dati con la proprietà InstanceName corrispondente restituisce i dati appropriati.

Per eseguire query su più classi WMI e nomi di istanza, usare la routine IoWMIQuerySingleInstanceMultiple . I driver possono usare la routine IoWMISetSingleInstance per aggiornare l'istanza della 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

IoWMIQuerySingleInstanceMultiple

IoWMISetSingleInstance