WNODE_METHOD_ITEM 结构 (wmistr.h)

WNODE_METHOD_ITEM 结构指示与数据块实例关联的方法,并包含该方法的任何输入数据。

语法

typedef struct tagWNODE_METHOD_ITEM {
  struct _WNODE_HEADER WnodeHeader;
  ULONG                OffsetInstanceName;
  ULONG                InstanceIndex;
  ULONG                MethodId;
  ULONG                DataBlockOffset;
  ULONG                SizeDataBlock;
  UCHAR                VariableData[];
} WNODE_METHOD_ITEM, *PWNODE_METHOD_ITEM;

成员

WnodeHeader

是一个 WNODE_HEADER 结构,其中包含所有 WNODE_XXX 结构共有的信息,例如缓冲区大小、表示与请求关联的数据块的 GUID,以及提供有关传递或返回 的 WNODE_XXX 数据的标志。

OffsetInstanceName

指示从此结构的开头到此实例的动态实例名称(在 USHORT 边界上对齐)的偏移量(以字节为单位)。 仅当 WnodeHeader.Flags 中清除WNODE_FLAG_STATIC_INSTANCE_NAMES时,此成员才有效。 如果数据块是使用静态实例名称注册的,WMI 将忽略 OffsetInstanceName

InstanceIndex

指示此数据块的驱动程序静态实例名称列表中的此实例的索引。 仅当使用静态实例名称注册数据块并且 WnodeHeader.Flags 中设置了WNODE_FLAG_STATIC_INSTANCE_NAMES时,此成员才有效。 如果数据块是使用动态实例名称注册的,则 WMI 将忽略 InstanceIndex

MethodId

指定要运行的方法的 ID。

DataBlockOffset

指示从输入 WNODE_METHOD_ITEM 开头到方法输入数据的偏移量,或从输出 WNODE_METHOD_ITEM 开始到方法输出数据的偏移量。

SizeDataBlock

指示输入 WNODE_METHOD_ITEM中输入数据的大小;如果没有输入,则指示零。 在输出WNODE_METHOD_ITEM,SizeDataBlock 指示输出数据的大小;如果没有输出,则为零。

VariableData

包含其他数据,包括动态实例名称(如果有)以及方法的输入或输出(在 8 字节边界上对齐)。

注解

WMI 传递 具有IRP_MN_EXECUTE_METHOD 请求的 WNODE_METHOD_ITEM ,以指定要在数据块实例中运行的方法,以及该方法所需的任何输入数据。

如果方法生成输出,驱动程序将使用 IrpStack-Parameters.WMI.Buffer> 缓冲区中 DataBlockOffset 上的输出覆盖输入数据,并在 WNODE_METHOD_ITEM 中设置 SizeDataBlock 以指定输出数据的大小。

要求

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

另请参阅

WNODE_HEADER