WMIREGINFOW 结构 (wmistr.h)

WMIREGINFO 结构包含驱动程序提供的信息,用于注册或更新其数据块和事件块。

语法

typedef struct {
  ULONG       BufferSize;
  ULONG       NextWmiRegInfo;
  ULONG       RegistryPath;
  ULONG       MofResourceName;
  ULONG       GuidCount;
  WMIREGGUIDW WmiRegGuid[];
} WMIREGINFOW, *PWMIREGINFOW;

成员

BufferSize

指示与此 WMIREGINFO 结构关联的 WMI 注册数据的总大小,如下所示:(sizeofWMIREGINFO) + (GuidCount * sizeofWMIREGGUID) + 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 结构的数组。

言论

为了响应注册请求(IRP_MN_REGINFOIRP_MN_REGINFO_EXParameters.WMI.DataPath 设置为 WMIREGISTER),驱动程序生成至少一个 WMIREGINFO 结构,并将 WMIREGINFO 结构写入 IrpStack->Parameters.WMI.Buffer的缓冲区。 WMIREGINFO 结构包含 WMIREGGUID 结构的数组,每个数据块或驱动程序公开的事件块都有一个。

如果驱动程序代表另一个驱动程序处理 WMI 请求,它将生成另一个 WMIREGINFO,其中包含由另一个驱动程序公开的每个块的 WMIREGGUID 结构数组, 将 NextWmiRegInfo 成员的第一 WMIREGINFO 设置为缓冲区中第一个 WMIREGINFO 开头 到下一 WMIREGINFO 开头的偏移量(以字节为单位), 并将这两个结构写入缓冲区。 驱动程序指示调用 IoCompleteRequest 以完成 IRP 时,WMIREGINFO 结构和关联的数据的总大小。

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

要求

要求 价值
标头 wmistr.h (包括 Wmistr.h)

另请参阅

IRP_MN_REGINFO

IRP_MN_REGINFO_EX

IoCompleteRequest

WMIREGGUID