struktur QUERY_FILE_LAYOUT_INPUT (ntifs.h)
Struktur QUERY_FILE_LAYOUT_INPUT memilih entri tata letak file mana yang dikembalikan dari permintaan FSCTL_QUERY_FILE_LAYOUT .
Sintaks
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;
Anggota
DUMMYUNIONNAME
DUMMYUNIONNAME.FilterEntryCount
Jumlah entri filter dalam array Filter .
DUMMYUNIONNAME.NumberOfPairs
Nama asli bidang ketika hanya ada satu jenis filter. Penyatuan ini hanya untuk menjaga kompatibilitas kode.
Flags
Menunjukkan entri tata letak file mana yang disertakan dalam hasil kueri. Bendera diatur ke kombinasi nilai berikut yang valid.
Nilai | Makna |
---|---|
QUERY_FILE_LAYOUT_INCLUDE_EXTENTS | Stream jangkauan entri disertakan dalam hasil kueri. Untuk menggunakan bendera ini, bendera QUERY_FILE_LAYOUT_INCLUDE_STREAMS juga harus diatur. |
QUERY_FILE_LAYOUT_INCLUDE_EXTRA_INFO | Entri nama informasi file tambahan disertakan dalam hasil kueri. |
QUERY_FILE_LAYOUT_INCLUDE_NAMES | Entri nama file disertakan dalam hasil kueri. |
QUERY_FILE_LAYOUT_INCLUDE_STREAMS | Entri aliran file disertakan dalam hasil kueri. |
QUERY_FILE_LAYOUT_RESTART | Reset iterator entri tata letak file ke awal volume. |
QUERY_FILE_LAYOUT_INCLUDE_STREAMS_WITH_NO_CLUSTERS_ALLOCATED | Sertakan entri untuk aliran penduduk dan atribut yang tidak dialokasikan. Untuk menggunakan bendera ini, bendera QUERY_FILE_LAYOUT_INCLUDE_STREAMS juga harus diatur. |
FilterType
Menentukan metode pemfilteran untuk membatasi informasi tata letak yang dikembalikan. Bisa menjadi salah satu nilai berikut.
Nilai | Makna |
---|---|
QUERY_FILE_LAYOUT_FILTER_TYPE_NONE | Tidak melakukan pemfilteran dan mengembalikan semua informasi. Saat menggunakan jenis ini, NumberOfPairs harus 0. |
QUERY_FILE_LAYOUT_FILTER_TYPE_CLUSTERS | Batasi informasi tata letak filter ke rentang di Filter.ClusterRanges. |
QUERY_FILE_LAYOUT_FILTER_TYPE_FILEID | Batasi informasi tata letak filter ke rentang di Filter.FileReferenceRanges. |
Reserved
Dicadangkan untuk penggunaan sistem.
Filter
Array struktur filter yang digunakan untuk memilih informasi tata letak tertentu. Ini berisi rentang referensi kluster atau file. Panjang array ditentukan oleh anggota NumberOfPairs . Setiap rentang harus berbeda dan tidak dapat tumpang tindih dengan rentang lain.
Anggota ini diabaikan jika QUERY_FILE_LAYOUT_FILTER_TYPE_NONE ditentukan dalam FilterType.
Filter.ClusterRanges[1]
Menentukan sekumpulan rentang kluster untuk memfilter informasi tata letak. Struktur rentang memiliki format berikut.
typedef struct _CLUSTER_RANGE {
LARGE_INTEGER StartingCluster;
LARGE_INTEGER ClusterCount;
} CLUSTER_RANGE, *PCLUSTER_RANGE;
Filter.FileReferenceRanges[1]
Menentukan sekumpulan rentang referensi file untuk memfilter informasi tata letak. Tersedia mulai Windows 10 versi 1809. Struktur rentang memiliki format berikut.
typedef struct _FILE_REFERENCE_RANGE {
LARGE_INTEGER StartingFileReference;
LARGE_INTEGER EndingReferenceNumber;
} FILE_REFERENCE_RANGE, *PFILE_REFERENCE_RANGE;
Filter.StorageReserveIds[1]
Menentukan sekumpulan ID cadangan penyimpanan untuk memfilter informasi tata letak. Enumerasi terkait memiliki format berikut.
typedef enum _STORAGE_RESERVE_ID {
StorageReserveIdNone = 0,
StorageReserveIdHard,
StorageReserveIdSoft,
StorageReserveIdUpdateScratch,
StorageReserveIdMax
} STORAGE_RESERVE_ID, *PSTORAGE_RESERVE_ID;
Keterangan
Bendera QUERY_FILE_LAYOUT_RESTART diatur pada permintaan FSCTL_QUERY_FILE_LAYOUT pertama. Jika rentang filter disertakan dalam permintaan, rentang tersebut di-cache saat QUERY_FILE_LAYOUT_RESTART diatur. Permintaan lebih lanjut akan mengembalikan entri file tata letak hingga akhir volume atau sampai rentang filter habis.
Jika QUERY_FILE_LAYOUT_RESTART diatur lagi untuk volume yang sama, posisi tata letak file diatur ulang ke awal volume. Selain itu, rentang filter di-cache ulang dan urutan evaluasinya diatur ulang ke rentang pertama.
Entri tata letak file dikembalikan dalam buffer output setelah struktur QUERY_FILE_LAYOUT_OUTPUT .
Saat FilterTypeQUERY_FILE_LAYOUT_FILTER_TYPE_CLUSTERS, anggota ClusterRanges dari filter union digunakan untuk pemfilteran rentang. Jika tidak, jika FilterTypeQUERY_FILE_LAYOUT_FILTER_TYPE_FILEID, anggota FileReferenceRanges digunakan untuk pemfilteran rentang.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 8 |
Header | ntifs.h (termasuk Ntifs.h) |