WMIREGINFOW 结构 (wmistr.h)
WMIREGINFO 结构包含驱动程序提供的信息,用于注册或更新其数据块和事件块。
语法
typedef struct {
ULONG BufferSize;
ULONG NextWmiRegInfo;
ULONG RegistryPath;
ULONG MofResourceName;
ULONG GuidCount;
WMIREGGUIDW WmiRegGuid[];
} WMIREGINFOW, *PWMIREGINFOW;
成员
BufferSize
指示与此 WMIREGINFO 结构关联的 WMI 注册数据的总大小,计算方式如下: (size of (WMIREGINFO) + (GuidCount * size of (WMIREGGUID) + additionaldata) 。 其他数据可能包括 MOF 资源名称、注册表路径和块的静态实例名称等项。
NextWmiRegInfo
如果驱动程序代表另一个驱动程序处理 WMI 请求,因为类驱动程序可能代表微型类驱动程序, 则 NextWmiRegInfo 指示从此 WMIREGINFO 的开头到下一个 WMIREGINFO 结构的偏移量(以字节为单位),该结构包含另一个驱动程序的 WMI 注册信息。 否则, NextWmiRegInfo 为零。
RegistryPath
指示从此结构的开头到计数 Unicode 字符串的偏移量(以字节为单位),该字符串指定传递给驱动程序 DriverEntry 例程的注册表路径。 字符串必须在 USHORT 边界上对齐。 仅应设置此成员以响应 WMI 注册请求 (IRP_MN_REGINFO 或 IRP_MN_REGINFO_EX 将 Parameters.WMI.DataPath 设置为 WMIREGISTER) 。
MofResourceName
指示从此结构的开头到计数 Unicode 字符串的偏移量(以字节为单位),该字符串指定驱动程序映像文件中 MOF 资源的名称。 字符串必须在 USHORT 边界上对齐。 仅应设置此成员以响应 WMI 注册请求 (IRP_MN_REGINFO 或 IRP_MN_REGINFO_EX 将 Parameters.WMI.DataPath 设置为 WMIREGISTER) 。
GuidCount
指示 WmiRegGuid 处数组中 WMIREGGUID 结构的数目。
WmiRegGuid
GuidCount WMIREGGUID 结构的数组。
注解
为响应将 Parameters.WMI.DataPath 设置为 WMIREGISTER ) (IRP_MN_REGINFO或IRP_MN_REGINFO_EX的注册请求,驱动程序会生成至少一个 WMIREGINFO 结构并将 WMIREGINFO 结构写入 IrpStack-Parameters.WMI.Buffer> 处的缓冲区。 WMIREGINFO 结构包含 WMIREGGUID 结构的数组,每个数据块或由驱动程序公开的事件块对应一个。
如果驱动程序代表另一个驱动程序处理 WMI 请求,它将生成另一个 WMIREGINFO,其中包含由另一个驱动程序公开的每个块的 WMIREGGUID 结构数组,并将第一个 WMIREGINFO 的 NextWmiRegInfo 成员设置为从第一个 WMIREGINFO 的开头到缓冲区中下一个 WMIREGINFO 的开头的偏移量(以字节为单位), 和 将这两个结构写入缓冲区。 驱动程序指示调用 IoCompleteRequest 完成 IRP 时 WMIREGINFO 结构和关联数据的总大小。
驱动程序可以使用相同的 WMIREGINFO 结构 () 来删除或更新块,以响应更新请求, ( 将 Parameters.WMI.DataPath 设置为 WMIUPDATE) IRP_MN_REGINFO或IRP_MN_REGINFO_EX。 如果在 WMIREGGUID 的 Flags 成员中设置了WMIREG_FLAG_REMOVE_GUID,则 WMI 将从驱动程序之前注册的块列表中删除该块。 如果WMIREG_FLAG_REMOVE_GUID明确,则 WMI 仅在其他 WMIREGGUID 成员已更改时才更新该块的注册信息,否则 WMI 不会更改为该块的注册信息。
要求
要求 | 值 |
---|---|
Header | wmistr.h (包括 Wmistr.h) |