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) |