IoWMIWriteEvent 函数 (wdm.h)

IoWMIWriteEvent 例程将给定事件传送到用户模式 WMI 组件以接收通知。

语法

NTSTATUS IoWMIWriteEvent(
  [in, out] PVOID WnodeEventItem
);

参数

[in, out] WnodeEventItem

指向要传递到请求事件通知的用户模式 WMI 组件的 WNODE_EVENT_ITEM 结构的指针。

返回值

IoWMIWriteEvent 从以下列表中返回状态代码:

返回代码 描述
STATUS_SUCCESS
指示 WMI 已成功将事件排队,以便传送到用户模式 WMI 组件。
STATUS_UNSUCCESSFUL
指示 WMI 服务不可用。
STATUS_BUFFER_OVERFLOW
指示指定的事件项超出了允许的最大大小。
STATUS_INSUFFICIENT_RESOURCES
指示 WMI 没有足够的资源将事件排在队列中以供传递。

言论

调用方分配并传入 WnodeEventItem 的WNODE_EVENT_ITEM结构必须从非分页池分配。 如果 IoWMIWriteEvent 返回STATUS_SUCCESS,则事件项的内存将自动由系统释放。 如果 IoWMIWriteEvent 返回除STATUS_SUCCESS以外的任何内容,则调用方负责释放缓冲区。

驱动程序应仅针对已启用 WMI 的事件调用 IoWMIWriteEvent。 这可确保事件使用者正在等待指示该事件。

此例程的调用方必须在 IRQL <= APC_LEVEL 上运行,但有一个例外。 当 标志WNODE_HEADER 结构的成员包含WNODE_FLAG_TRACED_GUID 时,可以在任何 IRQL 上调用 ioWMIWriteEvent。 (WNODE_HEADER 结构是 WnodeEventItem 参数指向的 WNODE_EVENT_ITEM 结构的成员。

要求

要求 价值
最低支持的客户端 从 Windows 2000 开始可用。
目标平台 普遍
标头 wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h)
NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL (请参阅“备注”部分)

另请参阅

IoWmiDeviceObjectToProviderId

WNODE_EVENT_ITEM