Partager via


IoWMIExecuteMethod, fonction (wdm.h)

La routine IoWMIExecuteMethod exécute une méthode de classe WMI sur l’instance de bloc de données WMI spécifiée.

Syntaxe

NTSTATUS IoWMIExecuteMethod(
  [in]      PVOID           DataBlockObject,
  [in]      PUNICODE_STRING InstanceName,
  [in]      ULONG           MethodId,
  [in]      ULONG           InBufferSize,
  [in, out] PULONG          OutBufferSize,
  [in, out] PUCHAR          InOutBuffer
);

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 IoWMIOpenBlock. L’objet doit être ouvert avec le droit d’accès WMIGUID_EXECUTE.

[in] InstanceName

Spécifie le nom de l’instance du bloc de données. Cette valeur correspond à la valeur de la propriété InstanceName pour le bloc.

[in] MethodId

Spécifie l’ID d’élément de méthode à définir pour la méthode. La valeur de ce paramètre correspond à la valeur déclarée dans la qualificateur WmiMethodId pour la méthode.

[in] InBufferSize

Spécifie la taille, en octets, des données d’entrée pour la méthode. Les données d’entrée réelles sont transmises dans la mémoire tampon pointée par le paramètre InOutBuffer.

[in, out] OutBufferSize

Pointeur vers un ULONG qui spécifie la taille attendue, les octets, de la sortie de données par la méthode. Les données de sortie réelles sont retournées dans la mémoire tampon pointée par le paramètre InOutBuffer. 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 InOutBuffer. Si la routine échoue avec STATUS_BUFFER_TOO_SMALL, elle retourne le nombre d’octets requis pour retourner les données.

[in, out] InOutBuffer

Pointeur vers la mémoire tampon où l’appelant transmet les données d’entrée de la méthode WMI et reçoit les données de sortie de la méthode WMI.

Valeur de retour

La routine retourne un code NTSTATUS. Les valeurs de retour possibles sont les suivantes :

Retourner le code Description
STATUS_SUCCESS
L’opération a réussi. La routine retourne les données WMI dans la mémoire tampon pointées par le paramètre InOutBuffer. La routine retourne également la taille, en octets, des données retournées à l’emplacement de mémoire pointé par le paramètre OutBufferSize.
STATUS_WMI_GUID_NOT_FOUND
Aucun pilote n’implémente la classe WMI.
STATUS_WMI_INSTANCE_NOT_FOUND
Aucun pilote n’implémente une instance de la classe WMI avec propriété InstanceName égale à la valeur spécifiée dans le paramètre InstanceName.
STATUS_WMI_ITEMID_NOT_FOUND
La classe WMI ne contient pas de méthode dont l’ID de méthode est égal à la valeur de MethodId.
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 vers lequel pointe le paramètre InOutBufferSize.
STATUS_WMI_GUID_DISCONNECTED
Le GUID WMI n’est plus disponible ou n’a jamais été disponible.

Remarques

IoWMIExecuteMethod détermine quels pilotes peuvent prendre en charge la classe WMI et le nom d’instance spécifiés. Il émet une demande de IRP_MN_EXECUTE_METHOD à chacun de ces pilotes. Pilote qui exporte l’instance de bloc de données avec propriété InstanceName correspondante, puis exécute la méthode WMI spécifiée.

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

Voir aussi

IRP_MN_EXECUTE_METHOD

IoWMIOpenBlock