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

指示此实例的索引到此数据块的驱动程序静态实例名称列表中。 仅当数据块使用静态实例名称注册并且WNODE_FLAG_STATIC_INSTANCE_NAMES在 WnodeHeader.Flags中设置时,此成员才有效。 如果数据块已注册到动态实例名称,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,以指定要在数据块实例中运行的方法,以及该方法所需的任何输入数据。

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

要求

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

另请参阅

WNODE_HEADER