QUERY_FILE_LAYOUT_INPUT構造体 (ntifs.h)

QUERY_FILE_LAYOUT_INPUT構造体は、FSCTL_QUERY_FILE_LAYOUT要求から返されるファイル レイアウト エントリを選択します。

構文

typedef struct _QUERY_FILE_LAYOUT_INPUT {
  union {
    ULONG FilterEntryCount;
    ULONG NumberOfPairs;
  } DUMMYUNIONNAME;
  ULONG                         Flags;
  QUERY_FILE_LAYOUT_FILTER_TYPE FilterType;
  ULONG                         Reserved;
  union {
    CLUSTER_RANGE        ClusterRanges[1];
    FILE_REFERENCE_RANGE FileReferenceRanges[1];
    STORAGE_RESERVE_ID   StorageReserveIds[1];
  } Filter;
} QUERY_FILE_LAYOUT_INPUT, *PQUERY_FILE_LAYOUT_INPUT;

メンバー

DUMMYUNIONNAME

DUMMYUNIONNAME.FilterEntryCount

Filter 配列内のフィルター エントリの数。

DUMMYUNIONNAME.NumberOfPairs

フィルターの種類が 1 つしかない場合のフィールドの元の名前。 共用体は、単にコードの互換性を維持することです。

Flags

クエリ結果に含めるファイル レイアウト エントリを示します。 フラグ は、次の値の有効な組み合わせに設定されます。

意味
QUERY_FILE_LAYOUT_INCLUDE_EXTENTS エクステント エントリStreamクエリ結果に含まれます。 このフラグを使用するには、 QUERY_FILE_LAYOUT_INCLUDE_STREAMS フラグも設定する必要があります。
QUERY_FILE_LAYOUT_INCLUDE_EXTRA_INFO 追加のファイル情報名エントリがクエリ結果に含まれます。
QUERY_FILE_LAYOUT_INCLUDE_NAMES ファイル名のエントリは、クエリ結果に含まれます。
QUERY_FILE_LAYOUT_INCLUDE_STREAMS ファイル ストリーム エントリはクエリ結果に含まれます。
QUERY_FILE_LAYOUT_RESTART ファイル レイアウトエントリ反復子をボリュームの先頭にリセットします。
QUERY_FILE_LAYOUT_INCLUDE_STREAMS_WITH_NO_CLUSTERS_ALLOCATED 常駐ストリームと未割り当て属性のエントリを含めます。 このフラグを使用するには、 QUERY_FILE_LAYOUT_INCLUDE_STREAMS フラグも設定する必要があります。

FilterType

返されるレイアウト情報を制限するフィルター方法を指定します。 次のいずれかの値を指定できます。

意味
QUERY_FILE_LAYOUT_FILTER_TYPE_NONE フィルター処理を実行せず、すべての情報を返します。 この型を使用する場合、 NumberOfPairs は 0 である必要があります。
QUERY_FILE_LAYOUT_FILTER_TYPE_CLUSTERS フィルター レイアウト情報を Filter.ClusterRanges の範囲に制限します。
QUERY_FILE_LAYOUT_FILTER_TYPE_FILEID フィルター レイアウト情報を Filter.FileReferenceRanges の範囲に制限します。

Reserved

システムで使用するために予約されています。

Filter

特定のレイアウト情報を選択するために使用されるフィルター構造の配列。 これには、クラスターまたはファイル参照範囲が含まれます。 配列の長さは NumberOfPairs メンバーによって指定されます。 各範囲は個別である必要があり、他の範囲と重複することはできません。

FilterTypeQUERY_FILE_LAYOUT_FILTER_TYPE_NONEが指定されている場合、このメンバーは無視されます。

Filter.ClusterRanges[1]

レイアウト情報をフィルター処理するクラスター範囲のセットを指定します。 範囲構造の形式は次のとおりです。

typedef struct _CLUSTER_RANGE {
    LARGE_INTEGER    StartingCluster;
    LARGE_INTEGER    ClusterCount;
} CLUSTER_RANGE, *PCLUSTER_RANGE;

Filter.FileReferenceRanges[1]

レイアウト情報をフィルター処理するファイル参照範囲のセットを指定します。 Windows 10 バージョン 1809 以降で使用できます。 範囲構造の形式は次のとおりです。

typedef struct _FILE_REFERENCE_RANGE {
    LARGE_INTEGER    StartingFileReference;
    LARGE_INTEGER    EndingReferenceNumber;
} FILE_REFERENCE_RANGE, *PFILE_REFERENCE_RANGE;

Filter.StorageReserveIds[1]

レイアウト情報をフィルター処理するためのストレージ予約 ID のセットを指定します。 関連付けられた列挙体の形式は次のとおりです。

typedef enum _STORAGE_RESERVE_ID {

    StorageReserveIdNone = 0,
    StorageReserveIdHard,
    StorageReserveIdSoft,
    StorageReserveIdUpdateScratch,

    StorageReserveIdMax

} STORAGE_RESERVE_ID, *PSTORAGE_RESERVE_ID;

注釈

QUERY_FILE_LAYOUT_RESTART フラグは、最初のFSCTL_QUERY_FILE_LAYOUT要求で設定されます。 フィルター範囲が要求に含まれている場合、 QUERY_FILE_LAYOUT_RESTART が設定されるとキャッシュされます。 それ以降の要求では、ボリュームの最後まで、またはフィルター範囲が使い果たされるまで、レイアウト ファイルエントリが返されます。

QUERY_FILE_LAYOUT_RESTARTが同じボリュームに対して再び設定されている場合、ファイル レイアウトの位置はボリュームの先頭にリセットされます。 さらに、フィルター範囲は再キャッシュされ、評価順序は最初の範囲にリセットされます。

ファイル レイアウト エントリは、 QUERY_FILE_LAYOUT_OUTPUT 構造体の後の出力バッファーに返されます。

FilterTypeQUERY_FILE_LAYOUT_FILTER_TYPE_CLUSTERSされると、Filter 共用体の ClusterRanges メンバーが範囲フィルター処理に使用されます。 それ以外の場合、 FilterTypeQUERY_FILE_LAYOUT_FILTER_TYPE_FILEIDされている場合は、 FileReferenceRanges メンバーが範囲フィルター処理に使用されます。

要件

要件
サポートされている最小のクライアント Windows 8
Header ntifs.h (Ntifs.h を含む)

こちらもご覧ください

FSCTL_QUERY_FILE_LAYOUT

QUERY_FILE_LAYOUT_OUTPUT