Bagikan melalui


FSCTL_QUERY_FILE_LAYOUT kode kontrol

Kode kontrol FSCTL_QUERY_FILE_LAYOUT mengambil informasi tata letak file untuk volume sistem file. Hasil permintaan ini adalah kumpulan entri informasi tata letak file. Jenis entri yang dikembalikan dikontrol dengan mengatur bendera penyertaan dalam struktur QUERY_FILE_LAYOUT_INPUT . Anda dapat secara opsional memfilter hasil dengan memberikan sekumpulan jangkauan file untuk membatasi pemilihan informasi tata letak.

Untuk melakukan operasi ini, panggil FltFsControlFile atau ZwFsControlFile dengan parameter berikut.

Parameter

  • FileObject [in]: FltFsControlFile saja. Penunjuk objek file untuk volume sistem file. Parameter ini diperlukan dan tidak boleh NULL.

  • FileHandle [in]: ZwFsControlFile saja. Handel file untuk volume sistem file. Parameter ini diperlukan dan tidak boleh NULL.

  • FsControlCode [in]: Kode kontrol untuk operasi. Gunakan kode kontrol FSCTL_QUERY_FILE_LAYOUT untuk operasi ini.

  • InputBuffer [in]: Penunjuk ke struktur QUERY_FILE_LAYOUT_INPUT yang dialokasikan penelepon. Struktur ini berisi opsi pilihan. Jangkauan file opsional disertakan setelah QUERY_FILE_LAYOUT_INPUT.

  • InputBufferLength [in]: Ukuran, dalam byte, dari buffer yang diacu oleh parameter InputBuffer . Ukuran InputBuffer harus setidaknya sizeof(QUERY_FILE_LAYOUT_INPUT) + (sizeof(Filter) * (NumberOfPairs - 1)), saat NumberOfPairs> 0. Jika tidak, atur InputBufferLength = sizeof(QUERY_FILE_LAYOUT_INPUT).

  • OutputBuffer [out]: Penunjuk ke struktur QUERY_FILE_LAYOUT_OUTPUT yang dialokasikan pemanggil. Ini adalah header untuk entri tata letak file yang mengikuti dalam buffer ini.

  • OutputBufferLength [out]: Ukuran, dalam byte, dari buffer yang diacu oleh parameter OutputBuffer . Ukuran OutputBuffer harus cukup besar untuk memuat QUERY_FILE_LAYOUT_OUTPUT bersama dengan tata letak file dan struktur tata letak aliran yang dikembalikan.

Blok status

FltFsControlFile atau ZwFsControlFile mengembalikan nilai STATUS_SUCCESS atau NTSTATUS yang sesuai, seperti salah satu nilai berikut:

Kode Makna
STATUS_INVALID_PARAMETER Volume sistem file bukan volume pengguna terbuka, atau nilai panjang buffer salah, atau opsi kueri yang tidak valid diatur.
STATUS_ACCESS_DENIED Pemanggil tidak dapat mengakses volume sistem file.
STATUS_INVALID_USER_BUFFER Penunjuk untuk InputBuffer atau OutputBuffer tidak diratakan dengan benar.
STATUS_BUFFER_TOO_SMALL Nilai dalam OutputBufferLength menunjukkan bahwa OutputBuffer terlalu kecil untuk berisi setidaknya satu entri tata letak.
STATUS_END_OF_FILE Penunjuk untuk InputBuffer atau OutputBuffer tidak diratakan dengan benar.

Keterangan

Untuk mengambil semua entri tata letak untuk volume, permintaan FSCTL_QUERY_FILE_LAYOUT dikeluarkan beberapa kali hingga STATUS_END_OF_FILE dikembalikan. Saat STATUS_SUCCESS dikembalikan, penelepon dapat terus mengirim permintaan FSCTL_QUERY_FILE_LAYOUT untuk entri tata letak yang tersisa.

Enumerasi entri tata letak dapat dimulai ulang kapan saja dengan menyertakan bendera QUERY_FILE_LAYOUT_RESTART di anggota BenderaQUERY_FILE_LAYOUT_INPUT. Selain itu, setelah FSCTL_QUERY_FILE_LAYOUT mengembalikan STATUS_END_OF_FILE, perlu untuk menyertakan bendera QUERY_FILE_LAYOUT_RESTART dalam permintaan FSCTL_QUERY_FILE_LAYOUT berikutnya untuk memulai enumerasi entri tata letak lain.

Kode ini tidak didukung oleh ReFS.

Persyaratan

Jenis persyaratan Persyaratan
Klien minimum yang didukung Pembaruan Windows 8.1
Header Ntifs.h (termasuk Ntifs.h atau Fltkernel.h)

Lihat juga

QUERY_FILE_LAYOUT_INPUT

QUERY_FILE_LAYOUT_OUTPUT

FltFsControlFile

ZwFsControlFile