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