次の方法で共有


WdfWmiInstanceFireEvent 関数 (wdfwmi.h)

[KMDF にのみ適用]

WdfWmiInstanceFireEvent メソッドは、イベント通知を受信するために登録されている WMI クライアントに WMI イベントを送信します。

構文

NTSTATUS WdfWmiInstanceFireEvent(
  [in]           WDFWMIINSTANCE WmiInstance,
  [in, optional] ULONG          EventDataSize,
  [in, optional] PVOID          EventData
);

パラメーター

[in] WmiInstance

ドライバーが WdfWmiInstanceCreate の以前の呼び出しから取得した WMI インスタンス オブジェクトへのハンドル。

[in, optional] EventDataSize

EventData が指すイベント データのサイズ (バイト単位)。

[in, optional] EventData

イベント データへのポインター。イベント データがない場合は NULL

戻り値

操作が成功した場合、WdfWmiInstanceFireEvent はSTATUS_SUCCESSを返します。 それ以外の場合、このメソッドは次のいずれかの値を返す可能性があります。

リターン コード 説明
STATUS_INSUFFICIENT_RESOURCES
メモリが不足していました。
STATUS_UNSUCCESSFUL
フレームワークが WMI と通信しようとしましたが失敗しました。
STATUS_BUFFER_OVERFLOW
イベント データ バッファーが大きすぎます。
 

このメソッドは、他の NTSTATUS 値を返す場合もあります。

ドライバーが無効なオブジェクト ハンドルを提供すると、バグ チェックが発生します。

注釈

ドライバーは、WMI クライアントがイベント通知に登録されている場合にのみ 、WdfWmiInstanceFireEvent を呼び出す必要があります。 ドライバーは、EvtWmiProviderFunctionControl コールバック関数を指定するか、WdfWmiProviderIsEnabled を呼び出すことによって、WdfWmiInstanceFireEvent を呼び出す必要があるかどうかを判断できます。

ドライバーは、 EventData パラメーターが指すバッファーにイベント固有のデータ (存在する場合) を配置する必要があります。 フレームワークは、必要なすべての WMI ヘッダー情報を追加します。

WdfWmiInstanceFireEvent メソッドの詳細については、「Framework-Based ドライバーでの WMI のサポート」を参照してください。

次のコード例では、WMI イベントを WMI クライアントに送信します。

MY_WMI_EVENT_DATA eventData;
NTSTATUS  status;

status = WdfWmiInstanceFireEvent(
                                 WmiInstance,
                                 sizeof(eventData),
                                 (PVOID)&eventData
                                 );

要件

要件
対象プラットフォーム ユニバーサル
最小 KMDF バージョン 1.0
Header wdfwmi.h (Wdf.h を含む)
Library Wdf01000.sys (「Framework ライブラリのバージョン管理」を参照)。
IRQL <= APC_LEVEL
DDI コンプライアンス規則 DriverCreate(kmdf)KmdfIrql(kmdf)KmdfIrql2(kmdf)、KmdfIrqlExplicit(kmdf)

こちらもご覧ください

EvtWmiProviderFunctionControl

WdfWmiInstanceCreate

WdfWmiProviderIsEnabled