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 必须为零。

[in, optional] EventData

指向驱动程序分配的非分页缓冲区的指针,该缓冲区包含由驱动程序为事件生成的数据。 如果未为事件生成任何数据, EventData 必须为 NULL。 WMI 释放缓冲区,无需驱动程序进一步干预。

返回值

WmiFireEvent 传播 IoWmiWriteEvent 返回的状态,如果无法为事件分配内存,则返回STATUS_INSUFFICIENT_RESOURCES。

注解

驱动程序调用 WmiFireEvent 将事件发送到 WMI,以便将事件传送给已请求事件通知的所有数据使用者。 传递给 WmiFireEvent 的所有指针都必须指向不可分页的内存,例如非分页池。

仅当驱动程序的 DpWmiFunctionControl 例程(WMI 调用该例程来处理 IRP_MN_ENABLE_EVENT 请求)之前,驱动程序才会发送事件。

驱动程序将与事件关联的任何数据写入 EventData 中的缓冲区。 WMI 使用数据填充 WNODE_SINGLE_INSTANCE 结构,并调用 IoWmiWriteEvent 传递事件。

有关事件跟踪的详细信息,请参阅 WMI 事件跟踪

要求

要求
最低受支持的客户端 从 Windows 2000 开始可用。
目标平台 通用
标头 wmilib.h (包括 Wmilib.h)
Library Wmilib.lib
IRQL <= DISPATCH_LEVEL

另请参阅

DpWmiFunctionControl

IRP_MN_ENABLE_EVENTS

WmiSystemControl