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 メンバーによって指定されます。 各範囲は個別である必要があり、他の範囲と重複することはできません。
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 |
Header | ntifs.h (Ntifs.h を含む) |