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

指向驱动程序分配的非分页缓冲区的指针,其中包含由驱动程序为事件生成的数据。 如果未为事件生成任何数据,则必须 NULLEventData。 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)
Wmilib.lib
IRQL <= DISPATCH_LEVEL

另请参阅

DpWmiFunctionControl

IRP_MN_ENABLE_EVENTS

WmiSystemControl