次の方法で共有


EVT_WDF_WMI_INSTANCE_EXECUTE_METHOD コールバック関数 (wdfwmi.h)

[KMDF にのみ適用]

ドライバーの EvtWmiInstanceExecuteMethod コールバック関数は、ドライバーが WMI データ プロバイダーのインスタンスに対して提供する指定されたメソッドを実行します。

構文

EVT_WDF_WMI_INSTANCE_EXECUTE_METHOD EvtWdfWmiInstanceExecuteMethod;

NTSTATUS EvtWdfWmiInstanceExecuteMethod(
  [in]      WDFWMIINSTANCE WmiInstance,
  [in]      ULONG MethodId,
  [in]      ULONG InBufferSize,
  [in]      ULONG OutBufferSize,
  [in, out] PVOID Buffer,
  [out]     PULONG BufferUsed
)
{...}

パラメーター

[in] WmiInstance

WMI インスタンス オブジェクトへのハンドル。

[in] MethodId

プロバイダー インスタンス内のメソッドを識別する 値。 この値は、プロバイダーの MOF ファイルで指定されている WmiMethodId 値に対応します。

[in] InBufferSize

入力データのバイト数。

[in] OutBufferSize

Buffer が指すバッファーが保持できる出力データのバイト数。

[in, out] Buffer

指定したメソッドによって決定される入力、出力、またはその両方に使用されるバッファーへのポインター。 入力データと出力データの両方が指定されている場合、ドライバーは入力データを出力データで上書きします。

[out] BufferUsed

ドライバーが出力バッファーに書き込んだバイト数を受け取る場所へのポインター。 OutBufferSize パラメーターが指定する出力バッファー サイズが小さすぎる場合、ドライバーはこの場所を必要なバッファー サイズに設定します。

戻り値

操作が成功した場合、 EvtWmiInstanceExecuteMethod コールバック関数はSTATUS_SUCCESSを返す必要があります。 それ以外の場合、この関数は、NT_SUCCESS(status) が FALSE である状態値を返す必要があります。 OutBufferSize パラメーターの値が、出力バッファーが小さすぎてデータを受信することが示されていない場合、ドライバーはSTATUS_BUFFER_TOO_SMALLを返す必要があります。

注釈

EvtWmiInstanceExecuteMethod コールバック関数を登録するには、ドライバーが WdfWmiInstanceCreate を呼び出す前に、関数のアドレスを WDF_WMI_INSTANCE_CONFIG 構造体に配置する必要があります。

ドライバーは、 MethodId パラメーターが指定するインスタンス メソッドを実行した後、バッファーに書き込まれたバイト数を格納する BufferUsed パラメーターを使用する必要があります。

フレームワークは、ドライバーの WMI イベント コールバック関数の呼び出しを相互に同期したり、ドライバーの他のイベント コールバック関数と同期したりすることはありません。 EvtWmiInstanceExecuteMethod コールバック関数のデータが動的であり、他のコールバック関数と共有されている場合、ドライバーはフレームワークの待機ロックまたはスピン ロックを使用してデータへのアクセスを同期できます。

EvtWmiInstanceExecuteMethod コールバック関数の詳細については、「Framework-Based ドライバーでの WMI のサポート」を参照してください。

要件

要件
対象プラットフォーム ユニバーサル
最小 KMDF バージョン 1.0
Header wdfwmi.h (Wdf.h を含む)
IRQL PASSIVE_LEVEL

こちらもご覧ください

EvtWmiInstanceQueryInstance

EvtWmiInstanceSetInstance

EvtWmiInstanceSetItem

EvtWmiProviderFunctionControl

WDF_WMI_INSTANCE_CONFIG

WdfWmiInstanceCreate