Wmilib.h) (WMIGUIDREGINFO 结构

WMIGUIDREGINFO 结构包含由使用 WMI 库支持例程的驱动程序公开的给定数据块或事件块的注册信息。

语法

typedef struct _WMIGUIDREGINFO {
  LPCGUID Guid;
  ULONG   InstanceCount;
  ULONG   Flags;
} WMIGUIDREGINFO, *PWMIGUIDREGINFO;

成员

Guid

指向标识块的 GUID 的指针。 包含 GUID 的内存可以分页,除非它还用于调用 WmiFireEvent

InstanceCount

指定为 块定义的实例数。

Flags

标记指示块特征的位。 这些标志位在 Wmistr.h 头文件中定义。 WMI 使用驱动程序在其 DpWmiQueryReginfo 例程的 RegFlags 参数中设置的标志位的 Flags 参数值,该参数适用于驱动程序注册的所有数据块和事件块。 因此,标志补充了给定块的驱动程序默认设置。

驱动程序可能会在 Flags 中设置以下标志位:

WMIREG_FLAG_INSTANCE_PDO

请求 WMI 从 PDO 的设备实例 ID 生成静态实例名称。 如果设置了此标志,驱动程序的 DpWmiQueryReginfo 例程的 Pdo 参数指向传递给驱动程序的 AddDevice 例程的 PDO。 WMI 从 PDO 的设备实例路径生成实例名称。 使用设备实例路径作为静态实例名称的基础是高效的,因为此类名称保证是唯一的。 WMI 自动提供实例的“友好”名称,作为数据块中可由数据使用者查询的项。

驱动程序还可能设置以下一个或多个标志位:

WMIREG_FLAG_EVENT_ONLY_GUID

块只能作为事件启用或禁用,不能查询或设置。 如果此标志是清除的,则还可以查询或设置块。

WMIREG_FLAG_EXPENSIVE

请求 WMI 在数据使用者首次打开数据块时发送 IRP_MN_ENABLE_COLLECTION 请求,并在最后一个数据使用者关闭数据块时发送 IRP_MN_DISABLE_COLLECTION 请求。 如果收集此类数据会影响性能,则建议这样做,因为驱动程序不需要收集数据,直到数据使用者通过打开 块显式请求它。

WMIREG_FLAG_REMOVE_GUID

请求 WMI 删除对此块的支持。 此标志仅在响应将 Parameters.WMI.DataPath 设置为 WMIUPDATE) (IRP_MN_REGINFO或IRP_MN_REGINFO_EX更新注册信息的请求时有效。

注解

通过调用 WMI 库支持例程处理 WMI IRP 的驱动程序会生成 WMIGUIDREGINFO 结构的数组,每个要注册的数据块和事件块对应一个。 驱动程序将其 WMILIB_CONTEXT 结构的 GuidList 成员设置为指向系列中的第一个 WMIGUIDREGINFO

可以从分页池分配此结构的内存。

要求

要求
Header wmilib.h (包括 Wmilib.h)

另请参阅

DpWmiQueryReginfo

IRP_MN_DISABLE_COLLECTION

IRP_MN_ENABLE_COLLECTION

IRP_MN_REGINFO

IRP_MN_REGINFO_EX

WMILIB_CONTEXT

WmiFireEvent