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 |