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
指定要執行之方法的識別碼。
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) |