enumerasi CSV_CONTROL_OP (ntifs.h)
Menentukan jenis operasi kontrol volume bersama kluster (CSV) untuk digunakan dengan kode kontrol FSCTL_CSV_CONTROL .
Sintaks
typedef enum _CSV_CONTROL_OP {
CsvControlStartRedirectFile = 0x02,
CsvControlStopRedirectFile = 0x03,
CsvControlQueryRedirectState = 0x04,
CsvControlQueryFileRevision = 0x06,
CsvControlQueryMdsPath = 0x08,
CsvControlQueryFileRevisionFileId128 = 0x09,
CsvControlQueryVolumeRedirectState = 0x0a,
CsvControlEnableUSNRangeModificationTracking = 0x0d,
CsvControlMarkHandleLocalVolumeMount = 0x0e,
CsvControlUnmarkHandleLocalVolumeMount = 0x0f,
CsvControlGetCsvFsMdsPathV2 = 0x12,
CsvControlDisableCaching = 0x13,
CsvControlEnableCaching = 0x14,
CsvControlStartForceDFO = 0x15,
CsvControlStopForceDFO = 0x16,
CsvControlQueryMdsPathNoPause = 0x17,
CsvControlSetVolumeId = 0x18,
CsvControlQueryVolumeId = 0x19
} CSV_CONTROL_OP, *PCSV_CONTROL_OP;
Konstanta
CsvControlStartRedirectFile Nilai: 0x02 Memulai pengalihan file CSV. |
CsvControlStopRedirectFile Nilai: 0x03 Menghentikan pengalihan file CSV. |
CsvControlQueryRedirectState Nilai: 0x04 Cari pengalihan status. Ketika nilai ini ditentukan, struktur CSV_QUERY_REDIRECT_STATE juga harus digunakan. |
CsvControlQueryFileRevision Nilai: 0x06 Cari revisi file. Ketika nilai ini ditentukan, struktur CSV_QUERY_FILE_REVISION juga harus digunakan. |
CsvControlQueryMdsPath Nilai: 0x08 Cari jalur MDS. Ketika nilai ini ditentukan, struktur CSV_QUERY_MDS_PATH juga harus digunakan. |
CsvControlQueryFileRevisionFileId128 Nilai: 0x09 Cari revisi file 128-bit. Ketika nilai ini ditentukan, struktur CSV_QUERY_FILE_REVISION_FILE_ID_128 juga harus digunakan. |
CsvControlQueryVolumeRedirectState Nilai: 0x0a Cari pengalihan status volume. Ketika nilai ini ditentukan, struktur CSV_QUERY_VOLUME_REDIRECT_STATE juga harus digunakan. |
CsvControlEnableUSNRangeModificationTracking Nilai: 0x0d Aktifkan pelacakan rentang USN. |
CsvControlMarkHandleLocalVolumeMount Nilai: 0x0e Ketika file VHD akan dipasang loopback, menandai handel dan meminta CVSFS gagal I/Os dan membatalkan handel setelah batas waktu singkat (saat ini 20 detik) jika tidak ada I/Os yang membuat kemajuan. |
CsvControlUnmarkHandleLocalVolumeMount Nilai: 0x0f Ketika file VHD akan dilepas loopbacknya, batalkan tanda tangan yang sebelumnya ditandai oleh CsvControlMarkHandleLocalVolumeMount. |
CsvControlGetCsvFsMdsPathV2 Nilai: 0x12 Cari jalur MDS versi 2. Ketika nilai ini ditentukan, struktur CSV_QUERY_MDS_PATH_V2 juga harus digunakan. |
CsvControlDisableCaching Nilai: 0x13 Menonaktifkan penembolokan file CSV. |
CsvControlEnableCaching Nilai: 0x14 Memungkinkan penembolokan file CSV. |
CsvControlStartForceDFO Nilai: 0x15 Memaksa CSVFS untuk mulai meneruskan I/O down-level pada objek file tingkat bawah (DFO). Lihat Keterangan untuk detailnya. |
CsvControlStopForceDFO Nilai: 0x16 Berhenti memaksa penerusan I/O CSVFS pada DFO. Lihat Keterangan untuk detailnya. |
CsvControlQueryMdsPathNoPause Nilai: 0x17 Mirip dengan CsvControlQueryMdsPath. Cari jalur MDS, tetapi jika volume CSV dijeda pada saat permintaan, atur MdsNodeId ke 0xFFFFFFFF alih-alih mengembalikan simpul koordinat terakhir. Ini memungkinkan klien untuk mendeteksi bahwa simpul koordinat mungkin berubah. Ketika CsvControlQueryMdsPathNoPause ditentukan, struktur CSV_QUERY_MDS_PATH juga harus digunakan. |
CsvControlSetVolumeId Nilai: 0x18 Atur GUID Volume CSV. Lihat Keterangan untuk detailnya. |
CsvControlQueryVolumeId Nilai: 0x19 Kueri apakah GUID Volume CSV tersedia. Lihat Keterangan untuk detailnya. |
Keterangan
Alternatif untuk memanggil kode kontrol FSCTL_CSV_CONTROL dengan enumerasi ini adalah dengan menggunakan struktur CSV_CONTROL_PARAM , yang merangkum anggota jenis enumerasi ini.
CsvControlStartForceDFO dan CsvControlStopForceDFO
Ketika objek file dibuka di CSVFS, CSVFS terbuka pada sistem file tingkat bawah (NTFS atau REFS) objek file tingkat bawah (DFO) yang cocok dengan setiap pengguna yang terbuka. Objek file tersebut dibuka sebagai bagian dari aplikasi yang membuka file pada CSVFS dan ditutup ketika aplikasi menutup handel untuk objek file pada CSVFS. Secara internal CSVFS membuka objek file tambahan yang disebut objek file halaman (PFO) yang dibagikan di antara semua pembukaan file yang sama pada CSVFS. Secara default, CSVFS menggunakannya untuk banyak operasi, seperti berikut ini:
- Negosiasi Oplock
- Kunci rentang byte
- Penerusan halaman I/O
Beberapa solusi pemfilteran mungkin menandai handel dengan cara khusus, dan kemudian mengharapkan bahwa semua baca dan tulis harus diteruskan ke tingkat bawah oleh CSVFS pada DFO yang cocok. Aplikasi dapat memaksa CSVFS untuk mulai meneruskan IO down-level di DFO dengan mengirim CsvControlStartForceDFO. Nantinya, aplikasi dapat menggunakan CsvControlStopForceDFO untuk kembali ke perilaku default. Menutup handel yang digunakan untuk mengirim CsvControlStartForceDFO akan secara implisit kembali seolah-olah aplikasi mengirim CsvControlStopForceDFO.
CsvControlSetVolumeId dan CsvControlQueryVolumeId
Kontrol ini memungkinkan minifilter sistem file yang dilampirkan ke sistem file tingkat bawah di bawah CSVFS untuk mempelajari GUID Volume CSV. Sumber Daya Disk Fisik Kluster mengatur GUID ini setelah sistem file tingkat bawah dipasang sehingga tidak tersedia jika filter terpasang selama pemasangan. Selama melampirkan filter, minifilter sistem file dapat mengeluarkan CsvControlQueryVolumeId untuk mengkueri apakah GUID sudah tersedia. Kontrol harus dikirim ke bagian atas tumpukan untuk memastikan csvflt menerimanya. Jika GUID volume belum tersedia, maka csvflt akan mengembalikan STATUS_UNSUCCESSFUL. Filter seharusnya tidak gagal dilampirkan jika GUID volume belum tersedia.
Pada titik selanjutnya, Sumber Daya Disk Fisik akan mengirim CsvControlSetVolumeId dengan GUID volume. Setiap filter pada tumpukan dapat menggunakan kontrol CsvControlSetVolumeId untuk menyimpan GUID volume. Filter tidak boleh menyelesaikan kontrol ini. Sebaliknya mereka harus mengizinkannya untuk turun ke tumpukan, memungkinkan filter lain kesempatan untuk menyimpan GUID.
Persyaratan
Persyaratan | Nilai |
---|---|
Header | ntifs.h |