struktur FSRTL_COMMON_FCB_HEADER (ntifs.h)
Jangan gunakan struktur FSRTL_COMMON_FCB_HEADER di luar struktur FSRTL_ADVANCED_FCB_HEADER . Struktur FSRTL_COMMON_FCB_HEADER berisi informasi konteks yang dikelola sistem file tentang file, direktori, volume, atau aliran data alternatif.
Sintaks
typedef struct _FSRTL_COMMON_FCB_HEADER {
CSHORT NodeTypeCode;
CSHORT NodeByteSize;
UCHAR Flags;
UCHAR IsFastIoPossible;
UCHAR Flags2;
UCHAR Reserved : 4;
UCHAR Version : 4;
PERESOURCE Resource;
PERESOURCE PagingIoResource;
LARGE_INTEGER AllocationSize;
LARGE_INTEGER FileSize;
LARGE_INTEGER ValidDataLength;
} FSRTL_COMMON_FCB_HEADER;
Anggota
NodeTypeCode
Dicadangkan untuk penggunaan sistem.
NodeByteSize
Dicadangkan untuk penggunaan sistem.
Flags
Bitmask bendera yang menunjukkan dukungan untuk berbagai fitur. Anggota ini harus berupa kombinasi bitwise OR dari satu atau beberapa nilai berikut:
Nilai | Makna |
---|---|
FSRTL_FLAG_FILE_MODIFIED | Dicadangkan untuk penggunaan sistem. |
FSRTL_FLAG_FILE_LENGTH_CHANGED | Dicadangkan untuk penggunaan sistem. |
FSRTL_FLAG_LIMIT_MODIFIED_PAGES | Dicadangkan untuk penggunaan sistem. Driver sistem file (kecuali untuk driver filter) yang harus mengatur atau menghapus batas data yang dimodifikasi untuk file harus memanggil CcSetDirtyPageThreshold. |
FSRTL_FLAG_ACQUIRE_MAIN_RSRC_EX | Dicadangkan untuk penggunaan sistem. |
FSRTL_FLAG_ACQUIRE_MAIN_RSRC_SH | Dicadangkan untuk penggunaan sistem. |
FSRTL_FLAG_USER_MAPPED_FILE | Manajer Cache mengatur bendera ini untuk menunjukkan bahwa tampilan dipetakan ke file. |
FSRTL_FLAG_ADVANCED_HEADER | Bendera ini menunjukkan bahwa sistem file menggunakan FSRTL_ADVANCED_FCB_HEADER alih-alih FSRTL_COMMON_FCB_HEADER dalam struktur blok kontrol file (FCB). Bendera ini diperlukan karena penggunaan struktur FSRTL_COMMON_FCB_HEADER di luar struktur FSRTL_ADVANCED_FCB_HEADER tidak digunakan lagi. |
FSRTL_FLAG_EOF_ADVANCE_ACTIVE | Dicadangkan untuk penggunaan sistem. |
IsFastIoPossible
Anggota ini harus menjadi salah satu nilai berikut:
Nilai | Makna |
---|---|
FastIoIsPossible | I/O cepat dimungkinkan. |
FastIoIsQuestionable | Kunci rentang byte eksklusif ada untuk file. Pemanggil harus memanggil rutinitas FastIoCheckIfPossible sistem file. |
FastIoIsNotPossible | FCB untuk file buruk, atau kunci oportunistik (juga disebut "oplock") ada untuk file. |
Untuk informasi selengkapnya tentang nilai-nilai ini, lihat entri referensi untuk FsRtlAreThereCurrentFileLocks, FsRtlCopyRead, dan FsRtlCopyWrite.
Flags2
Bitmask bendera yang ditetapkan sistem file untuk menunjukkan dukungan untuk berbagai fitur. Anggota ini harus satu atau beberapa nilai berikut:
Nilai | Makna |
---|---|
FSRTL_FLAG2_DO_MODIFIED_WRITE | Lihat detail berikut tabel ini. |
FSRTL_FLAG2_PURGE_WHEN_MAPPED | Jika bendera ini diatur, Manajer Cache akan menghapus dan menghapus menyeluruh peta cache saat pengguna pertama kali memetakan file. |
FSRTL_FLAG2_SUPPORTS_FILTER_CONTEXTS | Bendera ini menunjukkan bahwa sistem file menggunakan FSRTL_ADVANCED_FCB_HEADER alih-alih FSRTL_COMMON_FCB_HEADER dalam struktur FCB-nya. Bendera ini diperlukan karena penggunaan struktur FSRTL_COMMON_FCB_HEADER di luar struktur FSRTL_ADVANCED_FCB_HEADER tidak digunakan lagi. |
FSRTL_FLAG2_IS_PAGING_FILE | Jika diatur, header FCB ini dikaitkan dengan file halaman. |
Bendera FSRTL_FLAG2_DO_MODIFIED_WRITE digunakan bersama dengan anggota FsContext2 dari objek file untuk aliran file sebagai berikut:
Jika anggota FsContext2 dari objek file bukan NULL, aliran file mewakili instans terbuka file atau direktori, dan nilai bendera ini diabaikan oleh sistem operasi.
Jika anggota FsContext2 dari objek file adalah NULL, dan bendera ini tidak diatur, objek file adalah objek file aliran, dan alirannya adalah aliran modified-no-write (MNW).
Jika anggota FsContext2 dari objek file adalah NULL, dan bendera ini diatur, objek file adalah objek file aliran, dan aliran dapat ditulis.
Reserved
Dicadangkan untuk penggunaan sistem. Driver harus mengatur bit-field ini ke nol.
Version
Dicadangkan untuk penggunaan sistem. Bidang bit ini diatur oleh makro FsRtlSetupAdvancedHeader atau FsRtlSetupAdvancedHeaderEx . Dimulai dengan Windows Vista, nilai bidang bit ini FSRTL_FCB_HEADER_V1 atau lebih besar; jika tidak, nilainya FSRTL_FCB_HEADER_V0. Lihat FSRTL_ADVANCED_FCB_HEADER untuk informasi selengkapnya.
Resource
Arahkan ke variabel sumber daya yang diinisialisasi, di mana sistem file menyediakan penyimpanan yang akan digunakan untuk menyinkronkan akses I/O ke FCB. Variabel sumber daya harus dialokasikan dari kumpulan yang tidak disebarkan.
Driver filter harus memperlakukan anggota ini sebagai buram.
PagingIoResource
Arahkan ke variabel sumber daya tambahan, yang sistem filenya memasok penyimpanan yang akan digunakan untuk menyinkronkan akses I/O halaman ke FCB. Variabel sumber daya harus dialokasikan dari kumpulan yang tidak disebarkan.
Driver filter harus memperlakukan anggota ini sebagai buram.
AllocationSize
Ukuran alokasi untuk aliran file.
Untuk informasi selengkapnya tentang anggota AllocationSize, FileSize, dan ValidDataLength , lihat CcInitializeCacheMap.
FileSize
Ukuran file aliran file.
ValidDataLength
Panjang data aliran file yang valid.
Keterangan
Sistem file harus mengatur anggota FsContext dari setiap objek file untuk menunjuk ke struktur FSRTL_ADVANCED_FCB_HEADER . Struktur ini dapat disematkan di dalam struktur objek konteks aliran khusus sistem file (sisa struktur ini khusus sistem file). Biasanya, struktur FSRTL_ADVANCED_FCB_HEADER adalah blok kontrol file (FCB). Namun, pada beberapa sistem file yang mendukung beberapa aliran data, seperti NTFS, ini adalah blok kontrol aliran (SCB).
Untuk mendukung pengelola filter dan konteks filter, sistem file harus menggunakan struktur FSRTL_ADVANCED_FCB_HEADER dalam objek konteks alirannya. Semua sistem file Microsoft menggunakan struktur ini, dan semua pengembang sistem file pihak ketiga juga harus melakukannya. FCB dan SCB untuk semua kelas permintaan terbuka, termasuk permintaan terbuka volume, harus menyertakan struktur ini.
Jika file digunakan sebagai file halaman, struktur FSRTL_ADVANCED_FCB_HEADER harus dialokasikan dari kumpulan yang tidak disebarkan. Jika tidak, itu dapat dialokasikan dari kumpulan halaman atau tidak berpakaian.
Persyaratan
Persyaratan | Nilai |
---|---|
Header | ntifs.h (termasuk Ntifs.h, Fltkernel.h) |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk