Fonction IoWMIQueryAllDataMultiple (wdm.h)
La routine IoWMIQueryAllDataMultiple retourne tous les blocs de données WMI qui implémentent l’un des ensembles de classes WMI.
Syntaxe
NTSTATUS IoWMIQueryAllDataMultiple(
[in] PVOID *DataBlockObjectList,
[in] ULONG ObjectCount,
[in, out] PULONG InOutBufferSize,
[out, optional] PVOID OutBuffer
);
Paramètres
[in] DataBlockObjectList
Pointeur vers un tableau de pointeurs vers des 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] ObjectCount
Spécifie le nombre d’entrées du tableau passées dans le paramètre DataBlockObjectList .
[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 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 séquence de structures WNODE_ALL_DATA de taille variable, une pour chaque ensemble de blocs de données retournés. Le membre WnodeHeader.Linkage de chaque structure WNODE_ALL_DATA contient le décalage entre le début de la WNODE_ALL_DATA actuelle et le début de la WNODE_ALL_DATA suivante. Le dernier bloc de la chaîne a WnodeHeader.Linkage défini sur zéro. 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 . |
|
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
IoWMIQueryAllDataMultiple détermine les pilotes qui prennent en charge les classes WMI spécifiées et émet une requête IRP_MN_QUERY_ALL_DATA à chaque pilote de ce type.
Si aucun pilote n’implémente l’une des classes WMI spécifiées, la routine retourne STATUS_SUCCESS Elle retourne également une valeur de zéro dans l’emplacement de mémoire désigné par le paramètre InOutBufferSize .
Pour interroger une seule classe WMI, utilisez IoWMIQueryAllData.
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 |