IoWMIQuerySingleInstanceMultiple, fonction (wdm.h)
La routine IoWMIQuerySingleInstanceMultiple retourne toutes les instances de bloc de données WMI qui implémentent les classes WMI spécifiées avec les noms d’instances spécifiés.
Syntaxe
NTSTATUS IoWMIQuerySingleInstanceMultiple(
[in] PVOID *DataBlockObjectList,
[in] PUNICODE_STRING InstanceNames,
[in] ULONG ObjectCount,
[in, out] PULONG InOutBufferSize,
[out, optional] PVOID OutBuffer
);
Paramètres
[in] DataBlockObjectList
Pointeur vers un tableau de pointeurs d’objets de bloc de données WMI. L’appelant ouvre un objet de bloc de données pour chaque classe WMI avec la routine IoWMIOpenBlock. Chaque objet doit être ouvert avec le droit d’accès WMIGUID_QUERY.
[in] InstanceNames
Pointeur vers un tableau de structures UNICODE_STRING contenant des noms d’instance. Le nnom d’instance dans le tableau correspond à la valeur de la propriété InstanceName pour la classe nième classe WMI spécifiée dans le tableau pointé par le paramètre DataBlockObjectList .
[in] ObjectCount
Spécifie le nombre d’entrées dans les tableaux passés dans le DataBlockObjectList et paramètres InstanceNames.
[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_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 séquence de structures de WNODE_SINGLE_INSTANCE de taille variable, une pour chaque instance de bloc de données. Le WnodeHeader.Binding membre de chaque structure WNODE_SINGLE_INSTANCE contient le décalage entre le début du WNODE_SINGLE_INSTANCE actuel et le début de la WNODE_SINGLE_INSTANCEsuivante. Le bloc final de la chaîne a WnodeHeader.Binding défini sur zéro. Chaque instance de bloc de données distincte correspond à une seule classe WMI correspondante et au nom de l’instance. OutBuffer devez pointer vers une mémoire tampon allouée à partir d’un pool non paginé.
Valeur de retour
La routine retourne un code NTSTATUS. Les valeurs de retour possibles sont les suivantes :
Retourner le code | Description |
---|---|
|
L’opération a réussi. La routine retourne les données WMI dans la mémoire tampon pointées par le paramètre OutBuffer. La routine retourne également la taille, en octets, des données retournées à l’emplacement de mémoire pointé par le paramètre InOutBufferSize. |
|
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 mémoire vers lequel pointe le paramètre InOutBufferSize. |
Remarques
IoWMIQuerySingleInstanceMultiple détermine quels pilotes peuvent prendre en charge les classes WMI et les noms d’instances spécifiés, et émet une demande de IRP_MN_QUERY_SINGLE_INSTANCE à chacun de ces pilotes. Chaque pilote qui exporte l’instance de bloc de données avec propriété InstanceName correspondante retourne les données appropriées.
Si aucun pilote n’implémente l’une des classes WMI et noms d’instance spécifiés, la routine retourne STATUS_SUCCESS. Elle retourne également une valeur de zéro dans l’emplacement de mémoire vers lequel pointe le paramètre InOutBufferSize.
Pour rechercher un nom d’instance et de classe WMI unique, utilisez la routine IoWMIQuerySingleInstance. Les pilotes peuvent utiliser la routine IoWMISetSingleInstance pour mettre à jour une instance de classe.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Disponible dans Windows XP et versions ultérieures du système d’exploitation Windows. |
plateforme cible | Universel |
d’en-tête | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |