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_REGINFOIRP_MN_REGINFO_EXParameters.WMI.DataPath 设置为 WMIREGISTER) 。

MofResourceName

指示从此结构的开头到计数 Unicode 字符串的偏移量(以字节为单位),该字符串指定驱动程序映像文件中 MOF 资源的名称。 字符串必须在 USHORT 边界上对齐。 仅应设置此成员以响应 WMI 注册请求 (IRP_MN_REGINFOIRP_MN_REGINFO_EXParameters.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 结构数组,并将第一个 WMIREGINFONextWmiRegInfo 成员设置为从第一个 WMIREGINFO 的开头到缓冲区中下一个 WMIREGINFO 的开头的偏移量(以字节为单位), 和 将这两个结构写入缓冲区。 驱动程序指示调用 IoCompleteRequest 完成 IRP 时 WMIREGINFO 结构和关联数据的总大小。

驱动程序可以使用相同的 WMIREGINFO 结构 () 来删除或更新块,以响应更新请求, (Parameters.WMI.DataPath 设置为 WMIUPDATE) IRP_MN_REGINFO或IRP_MN_REGINFO_EX。 如果在 WMIREGGUIDFlags 成员中设置了WMIREG_FLAG_REMOVE_GUID,则 WMI 将从驱动程序之前注册的块列表中删除该块。 如果WMIREG_FLAG_REMOVE_GUID明确,则 WMI 仅在其他 WMIREGGUID 成员已更改时才更新该块的注册信息,否则 WMI 不会更改为该块的注册信息。

要求

要求
Header wmistr.h (包括 Wmistr.h)

另请参阅

IRP_MN_REGINFO

IRP_MN_REGINFO_EX

IoCompleteRequest

WMIREGGUID