WNODE_METHOD_ITEM structure (wmistr.h)
The WNODE_METHOD_ITEM structure indicates a method associated with an instance of a data block and contains any input data for the method.
Syntax
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;
Members
WnodeHeader
Is a WNODE_HEADER structure that contains information common to all WNODE_XXX structures, such as the buffer size, the GUID that represents a data block associated with a request, and flags that provide information about the WNODE_XXX data being passed or returned.
OffsetInstanceName
Indicates the offset in bytes from the beginning of this structure to the dynamic instance name of this instance, aligned on a USHORT boundary. This member is valid only if WNODE_FLAG_STATIC_INSTANCE_NAMES is clear in WnodeHeader.Flags. If the data block was registered with static instance names, WMI ignores OffsetInstanceName.
InstanceIndex
Indicates the index of this instance into the driver's list of static instance names for this data block. This member is valid only if the data block was registered with static instance names and WNODE_FLAG_STATIC_INSTANCE_NAMES is set in WnodeHeader.Flags. If the data block was registered with dynamic instance names, WMI ignores InstanceIndex.
MethodId
Specifies the ID of the method to run.
DataBlockOffset
Indicates the offset from the beginning of an input WNODE_METHOD_ITEM to input data for the method, or the offset from the beginning of an output WNODE_METHOD_ITEM to output data from the method.
SizeDataBlock
Indicates the size of the input data in an input WNODE_METHOD_ITEM, or zero if there is no input. In an output WNODE_METHOD_ITEM, SizeDataBlock indicates the size of the output data, or zero if there is no output.
VariableData
Contains additional data, including the dynamic instance name if any, and the input for or output from the method aligned on an 8-byte boundary.
Remarks
WMI passes a WNODE_METHOD_ITEM with an IRP_MN_EXECUTE_METHOD request to specify a method to run in an instance of a data block, plus any input data required by the method.
If a method generates output, a driver overwrites the input data with the output at DataBlockOffset in the buffer at IrpStack->Parameters.WMI.Buffer, and sets SizeDataBlock in the WNODE_METHOD_ITEM to specify the size of the output data.
Requirements
Requirement | Value |
---|---|
Header | wmistr.h (include Wmistr.h) |