WmiFireEvent 関数 (wmilib.h)

WmiFireEvent ルーチンは、イベントの通知を要求したデータ コンシューマーに配信するために、WMI にイベントを送信します。

構文

NTSTATUS WmiFireEvent(
  [in]           PDEVICE_OBJECT DeviceObject,
  [in]           LPCGUID        Guid,
  [in]           ULONG          InstanceIndex,
  [in]           ULONG          EventDataSize,
  [in, optional] PVOID          EventData
);

パラメーター

[in] DeviceObject

ドライバーの DEVICE_OBJECTへのポインター。

[in] Guid

イベント ブロックを表す GUID へのポインター。

[in] InstanceIndex

イベント ブロックに複数のインスタンスがある場合は、インスタンスのインデックスを指定します。

[in] EventDataSize

EventData でのデータのバイト数を指定します。 イベントのデータが生成されない場合、 EventData は 0 である必要があります。

[in, optional] EventData

イベントのドライバーによって生成されたデータを含む、ドライバーによって割り当てられた非ページ バッファーへのポインター。 イベントのデータが生成されない場合、 EventDataNULL である必要があります。 WMI は、ドライバーによるそれ以上の介入なしにバッファーを解放します。

戻り値

WmiFireEvent、IoWmiWriteEvent によって返された状態を伝達するか、イベントにメモリを割り当てられなかった場合はSTATUS_INSUFFICIENT_RESOURCESを返します。

注釈

ドライバーは WmiFireEvent を呼び出して、イベントの通知を要求したすべてのデータ コンシューマーに配信するために WMI にイベントを送信します。 WmiFireEvent に渡されるすべてのポインターは、非ページ プールなどの非ページングメモリを指す必要があります。

ドライバーは、ドライバーの DpWmiFunctionControl ルーチンによって以前に有効にされている場合にのみイベントを送信します。WMI は、 IRP_MN_ENABLE_EVENT 要求を処理するためにを呼び出します。

ドライバーは、イベントに関連付けられているすべてのデータを EventData のバッファーに書き込みます。 WMI は WNODE_SINGLE_INSTANCE 構造体にデータを入力し、 IoWmiWriteEvent を呼び出してイベントを配信します。

イベント トレースの詳細については、「 WMI イベント トレース」を参照してください。

要件

要件
サポートされている最小のクライアント Windows 2000 以降で使用できます。
対象プラットフォーム ユニバーサル
Header wmilib.h (Wmilib.h を含む)
Library Wmilib.lib
IRQL <= DISPATCH_LEVEL

こちらもご覧ください

DpWmiFunctionControl

IRP_MN_ENABLE_EVENTS

WmiSystemControl