次の方法で共有


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 は、WNODE_ALL_DATA の先頭から各インスタンスの先頭までのオフセットとその長さを指定する、InstanceCount OFFSETINSTANCEDATAANDLENGTH 構造体の配列です。 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 を生成することもできます。

構造体の固定メンバーを入力した後、ドライバーは、DataBlockOffsetOffsetInstanceNameOffsetsのインスタンス データと動的インスタンス名 (存在する場合) をそれぞれ、IrpStack->Parameters.WMI.Buffer のバッファーに書き込みます。 WNODE_FLAG_FIXED_INSTANCE_SIZEがクリアの場合、最初のオフセットは、OffsetInstanceDataAndLength 配列の最後の要素に加えてパディングに続き、データが 8 バイト境界で始まります。

インスタンス名は USHORT にアラインされている必要があります。 インスタンス データは QUADWORD でアラインされている必要があります。

必要条件

要件 価値
ヘッダー wmistr.h (Wmistr.h を含む)

関連項目

IRP_MN_QUERY_ALL_DATA

WNODE_EVENT_ITEM

WNODE_HEADER