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

CcInitializeCacheMap

FSRTL_ADVANCED_FCB_HEADER

FSRTL_PER_STREAM_CONTEXT

FsRtlAreThereCurrentFileLocks

FsRtlCopyRead

FsRtlCopyWrite

FsRtlSetupAdvancedHeader

FsRtlSetupAdvancedHeaderEx