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 |