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 | ストリーム エクステント エントリはクエリ結果に含まれます。 このフラグを使用するには、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 メンバーによって指定されます。 各範囲は個別である必要があり、他の範囲と重複することはできません。
FilterType で QUERY_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 構造体の後の出力バッファーに返されます。
FilterType が QUERY_FILE_LAYOUT_FILTER_TYPE_CLUSTERSされると、Filter 共用体の ClusterRanges メンバーが範囲フィルター処理に使用されます。 それ以外の場合、FilterType が QUERY_FILE_LAYOUT_FILTER_TYPE_FILEIDされると、FileReferenceRanges メンバーが範囲フィルター処理に使用されます。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 8 |
ヘッダー | ntifs.h (Ntifs.h を含む) |