WNODE_ALL_DATA 構造体 (wmistr.h)
WNODE_ALL_DATA構造体には、データ ブロックまたはイベント ブロックのすべてのインスタンスのデータが含まれています。
構文
typedef struct tagWNODE_ALL_DATA {
struct _WNODE_HEADER WnodeHeader;
ULONG DataBlockOffset;
ULONG InstanceCount;
ULONG OffsetInstanceNameOffsets;
union {
ULONG FixedInstanceSize;
OFFSETINSTANCEDATAANDLENGTH OffsetInstanceDataAndLength[];
} DUMMYUNIONNAME;
} WNODE_ALL_DATA, *PWNODE_ALL_DATA;
メンバー
WnodeHeader
バッファー サイズ、要求に関連付けられたデータ ブロックを表す GUID、渡されるまたは返されるWNODE_XXX データに関する情報を提供するフラグなど、すべてのWNODE_XXX 構造体に共通する情報を含むWNODE_HEADER構造体を指定します。
DataBlockOffset
WNODE_ALL_DATA構造体の先頭から最初のインスタンスのデータの先頭までのオフセットをバイト単位で示します。
InstanceCount
IrpStack-Parameters.WMI.Buffer> のバッファー内のWNODE_ALL_DATAの固定メンバーに従うデータを持つインスタンスの数を示します。
OffsetInstanceNameOffsets
WNODE_ALL_DATAの先頭から動的インスタンス名へのオフセットの配列へのオフセットをバイト単位で示します。 各インスタンス名は、USHORT 境界に配置する必要があります。 返されるすべてのインスタンスに静的インスタンス名がある場合、WMI は OffsetInstanceNameOffsets を無視します。
DUMMYUNIONNAME
DUMMYUNIONNAME.FixedInstanceSize
すべてのインスタンスが同じサイズの場合に返される各インスタンスのサイズを示します。 このメンバーは、ドライバーが WnodeHeader.Flags でWNODE_FLAG_FIXED_INSTANCE_SIZEを設定する場合にのみ有効です。
DUMMYUNIONNAME.OffsetInstanceDataAndLength
返されるインスタンスのサイズが異なる場合、 OffsetInstanceDataAndLength は InstanceCount OFFSETINSTANCEDATAANDLENGTH 構造体の配列であり、 WNODE_ALL_DATA の先頭から各インスタンスの先頭までのオフセットとその長さをバイト単位で指定します。 OFFSETINSTANCEDATAANDLENGTH は次のように定義されます。
typedef struct {
ULONG OffsetInstanceData;
ULONG LengthInstanceData;
} OFFSETINSTANCEDATAANDLENGTH, *POFFSETINSTANCEDATAANDLENGTH;
各インスタンスは USHORT 境界に配置する必要があります。 OffsetInstanceDataAndLength メンバーは、ドライバーが WnodeHeader.Flags でWNODE_FLAG_FIXED_INSTANCE_SIZEをクリアした場合にのみ有効です。
注釈
ドライバーは、IRP_MN_QUERY_ALL_DATA要求に応答して、WNODE_ALL_DATA構造体を入力します。 ドライバーは、 イベントとしてWNODE_ALL_DATA を生成する場合もあります。
構造体の固定メンバーを入力した後、ドライバーは、インスタンス データと動的インスタンス名 (存在する場合) をそれぞれ、IrpStack-Parameters.WMI.Buffer> のバッファーに DataBlockOffset と OffsetInstanceNameOffsets に書き込みます。 WNODE_FLAG_FIXED_INSTANCE_SIZEが明確な場合、最初のオフセットは OffsetInstanceDataAndLength 配列の最後の要素に加えて、8 バイト境界でデータが開始されるようにパディングに従います。
インスタンス名は USHORT で整列する必要があります。 インスタンス データは QUADWORD で整列する必要があります。
要件
要件 | 値 |
---|---|
Header | wmistr.h (Wmistr.h を含む) |