Partager via


Fonction IoWMIQuerySingleInstanceMultiple (wdm.h)

La routine IoWMIQuerySingleInstanceMultiple retourne toutes les instances de blocs de données WMI qui implémentent les classes WMI spécifiées avec les noms de instance 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 instance. Le nièmenom instance dans le tableau correspond à la valeur de la propriété InstanceName pour la nièmeclasse WMI spécifiée dans le tableau vers lequel pointe le paramètre DataBlockObjectList.

[in] ObjectCount

Spécifie le nombre d’entrées dans les tableaux passés dans les paramètres DataBlockObjectList et 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 la 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 WNODE_SINGLE_INSTANCE de taille variable, une pour chaque bloc de données instance. Le membre WnodeHeader.Linkage de chaque structure de WNODE_SINGLE_INSTANCE contient le décalage entre le début de la WNODE_SINGLE_INSTANCE actuelle et le début de la WNODE_SINGLE_INSTANCE suivante. Le dernier bloc de la chaîne a WnodeHeader.Linkage défini sur zéro. Chaque bloc de données distinct instance correspond à une seule classe WMI et instance nom. 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
STATUS_SUCCESS
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 .
STATUS_BUFFER_TOO_SMALL
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 pointé par le paramètre InOutBufferSize .

Remarques

IoWMIQuerySingleInstanceMultiple détermine quels pilotes peuvent prendre en charge les classes WMI et les noms instance spécifiés, et émet une demande de IRP_MN_QUERY_SINGLE_INSTANCE à chacun de ces pilotes. Chaque pilote qui exporte le bloc de données instance avec la propriété InstanceName correspondante retourne les données appropriées.

Si aucun pilote n’implémente les classes WMI et les noms instance spécifiés, la routine retourne STATUS_SUCCESS. Elle retourne également une valeur de zéro dans l’emplacement de mémoire pointé par le paramètre InOutBufferSize .

Pour rechercher une seule classe WMI et instance nom, utilisez la routine IoWMIQuerySingleInstance. Les pilotes peuvent utiliser la routine IoWMISetSingleInstance pour mettre à jour une classe instance.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible dans Windows XP et versions ultérieures du système d’exploitation Windows.
Plateforme cible Universal
En-tête wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

Voir aussi

IRP_MN_QUERY_SINGLE_INSTANCE

IoWMIOpenBlock

IoWMIQuerySingleInstance

IoWMISetSingleInstance

UNICODE_STRING