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 Entri tingkat aliran 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

   
Klien minimum yang didukung Windows 8
Header ntifs.h (termasuk Ntifs.h)

Lihat juga

FSCTL_QUERY_FILE_LAYOUT

QUERY_FILE_LAYOUT_OUTPUT