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

返されるインスタンスのサイズが異なる場合、 OffsetInstanceDataAndLengthInstanceCount 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> のバッファーに DataBlockOffsetOffsetInstanceNameOffsets に書き込みます。 WNODE_FLAG_FIXED_INSTANCE_SIZEが明確な場合、最初のオフセットは OffsetInstanceDataAndLength 配列の最後の要素に加えて、8 バイト境界でデータが開始されるようにパディングに従います。

インスタンス名は USHORT で整列する必要があります。 インスタンス データは QUADWORD で整列する必要があります。

要件

要件
Header wmistr.h (Wmistr.h を含む)

こちらもご覧ください

IRP_MN_QUERY_ALL_DATA

WNODE_EVENT_ITEM

WNODE_HEADER