Bagikan melalui


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

IRP_MJ_DEVICE_CONTROL

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

SET_PURGE_FAILURE_MODE_INPUT