[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を返します。 それ以外の場合、このメソッドは次のいずれかの値を返す可能性があります。
| リターン コード | 形容 |
|---|---|
|
メモリが不足していました。 |
|
フレームワークが WMI と通信しようとしましたが失敗しました。 |
|
イベント データ バッファーが大きすぎます。 |
このメソッドは、他の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 |
| ヘッダー | wdfwmi.h (Wdf.h を含む) |
| ライブラリ | Wdf01000.sys (フレームワーク ライブラリのバージョン管理を参照)。 |
| IRQL | <= APC_LEVEL |
| DDI コンプライアンス規則 を する | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |
関連項目
EvtWmiProviderFunctionControl の