IoWMIExecuteMethod 関数 (wdm.h)

IoWMIExecuteMethod ルーチンは、指定された WMI データ ブロック インスタンスに対して WMI クラス メソッドを実行します。

構文

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

パラメーター

[in] DataBlockObject

WMI データ ブロック オブジェクトへのポインター。 呼び出し元は、 IoWMIOpenBlock を使用して WMI クラスのデータ ブロック オブジェクトを開きます。 オブジェクトは、WMIGUID_EXECUTEアクセス権を使用して開く必要があります。

[in] InstanceName

データ ブロックのインスタンスの名前を指定します。 この値は、 ブロックの InstanceName プロパティの値に対応します。

[in] MethodId

設定するメソッドのメソッド項目 ID を指定します。 このパラメーターの値は、 メソッドの WmiMethodId 修飾子で宣言された値に対応します。

[in] InBufferSize

メソッドの入力データのサイズをバイト単位で指定します。 実際の入力データは、 InOutBuffer パラメーターによって指されるバッファーに渡されます。

[in, out] OutBufferSize

メソッドによって出力されるデータの予想されるサイズ (バイト) を指定する ULONG へのポインター。 実際の出力データは、 InOutBuffer パラメーターが指すバッファーで返されます。 ルーチンが成功した場合は、メモリの場所を更新して 、InOutBuffer に実際に格納されているバイト数を指定します。 ルーチンが STATUS_BUFFER_TOO_SMALL で失敗した場合、データを返すために必要なバイト数が返されます。

[in, out] InOutBuffer

呼び出し元が WMI メソッドの入力データを渡し、WMI メソッドの出力データを受信するバッファーへのポインター。

戻り値

ルーチンは NTSTATUS コードを返します。 可能な戻り値は次のとおりです。

リターン コード 説明
STATUS_SUCCESS
操作が成功しました。 ルーチンは、 InOutBuffer パラメーターが指すバッファー内の WMI データを返します。 また、ルーチンは、 OutBufferSize パラメーターが指すメモリ位置で返されたデータのサイズ (バイト単位) も返します。
STATUS_WMI_GUID_NOT_FOUND
WMI クラスを実装するドライバーはありません。
STATUS_WMI_INSTANCE_NOT_FOUND
ドライバーは、InstanceName パラメーターで指定された値と等しい InstanceName プロパティを持つ WMI クラスのインスタンスを実装しません。
STATUS_WMI_ITEMID_NOT_FOUND
WMI クラスには、 MethodId の値と等しいメソッド ID を持つメソッドが含まれていません。
STATUS_BUFFER_TOO_SMALL
OutBuffer パラメーターで呼び出し元によって渡されるバッファーが小さすぎます。 ルーチンは、 InOutBufferSize パラメーターが指すメモリ位置に必要なバッファー サイズを返します。
STATUS_WMI_GUID_DISCONNECTED
WMI GUID が使用できなくなったか、使用できませんでした。

注釈

IoWMIExecuteMethod は、指定された WMI クラスとインスタンス名をサポートするドライバーを決定します。 このような各ドライバーに IRP_MN_EXECUTE_METHOD 要求を発行します。 一致する InstanceName プロパティを持つデータ ブロック インスタンスをエクスポートするドライバーは、指定された WMI メソッドを実行します。

要件

要件
サポートされている最小のクライアント Windows XP 以降のバージョンの Windows オペレーティング システムで使用できます。
対象プラットフォーム ユニバーサル
Header wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL <= APC_LEVEL

こちらもご覧ください

IRP_MN_EXECUTE_METHOD

IoWMIOpenBlock