FSCTL_SET_PURGE_FAILURE_MODE IOCTL (ntifs.h)
Filter Manager menggunakan kode kontrol FSCTL_SET_PURGE_FAILURE_MODE untuk menyinkronkan operasi selama masa pakai bagian yang dibuat untuk pemindaian data. Filter tidak boleh mengeluarkan kode kontrol ini.
Kode utama
Buffer input
Struktur SET_PURGE_FAILURE_MODE_INPUT .
Panjang buffer input
Ukuran dalam byte SET_PURGE_FAILURE_MODE_INPUT.
Buffer output
Tidak ada
Panjang buffer output
n/a
Buffer Input/Output
Tidak ada
Panjang buffer Input/Output
n/a
Blok status
Dicadangkan untuk penggunaan sistem.
Keterangan
Filter Manager menggunakan kode kontrol ini dengan panggilan IRP_MJ_FILE_SYSTEM_CONTROL untuk memperketat masa pakai bagian. Panggilan ini berfungsi untuk menginstruksikan sistem file (dan, jarang, minifilter) untuk berulah dengan cara berikut jika gagal menghapus menyeluruh cache Cache Manager.
Untuk setiap FSCTL_SET_PURGE_FAILURE_MODE yang dikeluarkan dengan set SET_PURGE_FAILURE_MODE_ENABLED, FSCTL_SET_PURGE_FAILURE_MODE akan dikeluarkan dengan kumpulan SET_PURGE_FAILURE_MODE_DISABLED. Meskipun ada SET_PURGE_FAILURE_MODE_ENABLED yang luar biasa, Manajer Filter merespons sebagai berikut untuk status kegagalan tertentu untuk jenis operasi tertentu (lihat tabel di bawah):
• Menunda operasi, mempercepat penutupan bagian (jika memungkinkan) • Mengantre ulang operasi ke minifilter atau sistem file yang mengeluarkan kegagalan
Untuk memicu Manajer Filter merespons dengan sesuai, sistem file (atau filter) merespons kegagalan untuk menghapus menyeluruh bagian dengan cara berikut:
Operasi | Status pengembalian yang diperlukan |
---|---|
IRP_MJ_CREATE (operasi destruktif) | STATUS_USER_MAPPED_FILE |
IRP_MJ_WRITE (hanya operasi yang tidak dibuffer) | STATUS_PURGE_FAILED |
IRP_MJ_SET_INFORMATION | STATUS_PURGE_FAILED |
Status-status ini hanya boleh dikembalikan sementara ada SET_PURGE_FAILURE_MODE_ENABLED yang luar biasa (tidak ada SET_PURGE_FAILURE_MODE_DISABLED penyeimbangan yang diterima). Dalam semua kasus lain, status kesalahan akan dikembalikan ke aplikasi.
Untuk operasi lain (misalnya, penulisan yang di-cache), jika sistem file (atau filter) gagal menghapus menyeluruh bagian saat ada FSCTL_SET_PURGE_FAILURE_MODE luar biasa maka bertanggung jawab untuk menunggu operasi dan menerbitkannya kembali ketika jumlah FSCTL_SET_PURGE_FAILURE_MODE yang luar biasa turun ke nol. Jika sistem file (atau filter) hanya mengembalikan status kegagalan (termasuk yang tercantum di atas), status tersebut akan dikembalikan ke aplikasi.
Status kesalahan diproses sepenuhnya dalam Manajer Filter, seperti halnya antrean ulang operasi yang gagal. Ini berarti bahwa tidak terlihat oleh filter, yang memiliki implikasi penting berikut:
- Alat pemantauan sistem file seperti Monitor Proses tidak akan melaporkan operasi ini.
- Jika filter atas diperlukan untuk terlibat agar operasi yang dikeluarkan kembali berhasil, maka operasi antrean ulang akan gagal. Dalam situasi ini penulis filter diperlukan untuk memastikan bahwa filter kedua ini mengembalikan status kegagalan.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 8 |
Header | ntifs.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