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 结构的 Flags 成员包含WNODE_FLAG_TRACED_GUID时,可以在任何 IRQL 中调用 IoWMIWriteEvent。 (WNODE_HEADER 结构是 WnodeEventItem 参数指向的 WNODE_EVENT_ITEM 结构的成员。)

要求

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

另请参阅

IoWmiDeviceObjectToProviderId

WNODE_EVENT_ITEM