Fonction IoWMIQuerySingleInstance (wdm.h)
La routine IoWMIQuerySingleInstance retourne le instance spécifié d’un bloc de données WMI.
Syntaxe
NTSTATUS IoWMIQuerySingleInstance(
[in] PVOID DataBlockObject,
[in] PUNICODE_STRING InstanceName,
[in, out] PULONG InOutBufferSize,
[out, optional] PVOID OutBuffer
);
Paramètres
[in] DataBlockObject
Pointeur vers un objet de bloc de données WMI. L’appelant ouvre l’objet de bloc de données pour la classe WMI avec la routine IoWMIOpenBlock . L’objet doit être ouvert avec le droit d’accès WMIGUID_QUERY.
[in] InstanceName
Spécifie le nom du instance du bloc de données. Cette valeur correspond à la valeur de la propriété InstanceName pour le bloc.
[in, out] InOutBufferSize
Pointeur vers un emplacement de mémoire qui spécifie la taille de la mémoire tampon passée dans le paramètre OutBuffer . Si la routine réussit, elle met à jour l’emplacement de mémoire pour spécifier le nombre d’octets réellement stockés dans OutBuffer. Si la routine échoue avec status code de STATUS_BUFFER_TOO_SMALL, elle retourne le nombre d’octets requis pour retourner les données.
[out, optional] OutBuffer
Pointeur vers la mémoire tampon où la routine retourne les données WMI. La routine retourne une structure de WNODE_SINGLE_INSTANCE de taille variable. OutBuffer doit pointer vers une mémoire tampon allouée à partir d’un pool non paginé.
Valeur retournée
La routine retourne un code NTSTATUS. Les valeurs de retour possibles sont les suivantes :
Code de retour | Description |
---|---|
|
L’opération a réussi. La routine retourne les données WMI dans la mémoire tampon pointée par le paramètre OutBuffer . La routine retourne également la taille, en octets, des données retournées dans l’emplacement de mémoire pointé par le paramètre InOutBufferSize . |
|
Aucun pilote n’implémente la classe WMI spécifiée. |
|
Aucun pilote n’implémente une instance de la classe WMI avec la propriété InstanceName égale à la valeur spécifiée dans le paramètre InstanceName. |
|
La mémoire tampon passée par l’appelant dans le paramètre OutBuffer est trop petite. La routine retourne la taille de mémoire tampon requise dans l’emplacement de mémoire pointé par le paramètre InOutBufferSize . |
Remarques
IoWMIQuerySingleInstance détermine quels pilotes peuvent prendre en charge la classe WMI spécifiée avec le nom de instance spécifié et émet une demande IRP_MN_QUERY_SINGLE_INSTANCE à chacun de ces pilotes. Le pilote qui exporte le bloc de données instance avec la propriété InstanceName correspondante retourne les données appropriées.
Pour rechercher plusieurs classes WMI et noms de instance, utilisez la routine IoWMIQuerySingleInstanceMultiple. Les pilotes peuvent utiliser la routine IoWMISetSingleInstance pour mettre à jour la classe instance.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Disponible dans Windows XP et les versions ultérieures du système d’exploitation Windows. |
Plateforme cible | Universal |
En-tête | wdm.h (inclure Wdm.h, Ntddk.h, Ntifs.h) |
Bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |