Bagikan melalui


Melarang Operasi I/O Cepat dalam Rutinitas Panggilan Balik Praoperasi

Dalam keadaan tertentu, driver minifilter mungkin memilih untuk melarang operasi I/O cepat alih-alih menyelesaikannya. Melarang operasi I/O cepat mencegah jalur I/O cepat digunakan untuk operasi.

Seperti menyelesaikan operasi I/O, melarang operasi I/O cepat berarti menghentikan pemrosesan di atasnya dan mengembalikannya ke manajer filter. Namun, melarang operasi I/O cepat berbeda dengan menyelesaikannya. Jika driver minifilter melarang operasi I/O cepat yang dikeluarkan oleh manajer I/O, manajer I/O dapat menerbitkan kembali operasi yang sama dengan operasi berbasis IRP yang setara.

Ketika rutinitas panggilan balik praoperasi driver minifilter melarang operasi I/O cepat, manajer filter melakukan hal berikut:

  • Tidak mengirim operasi ke driver minifilter di bawah driver minifilter saat ini, ke filter warisan, atau ke sistem file.

  • Memanggil rutinitas panggilan balik pascaoperasi driver minifilter di atas driver minifilter saat ini di tumpukan instans driver minifilter.

  • Tidak memanggil rutinitas panggilan balik pascaoperasi driver minifilter saat ini untuk operasi, jika ada.

Driver minifilter melarang operasi I/O cepat dengan mengembalikan FLT_PREOP_DISALLOW_FASTIO dari rutinitas panggilan balik praoperasi untuk operasi.

Rutinitas panggilan balik praoperasi tidak boleh mengatur bidang IoStatus.Status struktur data panggilan balik, karena manajer filter secara otomatis mengatur bidang ini ke STATUS_FLT_DISALLOW_FAST_IO.

FLT_PREOP_DISALLOW_FASTIO hanya dapat dikembalikan untuk operasi I/O yang cepat. Untuk menentukan apakah operasi adalah operasi I/O yang cepat, lihat FLT_IS_FASTIO_OPERATION.

Driver minifilter tidak dapat mengembalikan FLT_PREOP_DISALLOW_FASTIO untuk operasi IRP_MJ_SHUTDOWN, IRP_MJ_VOLUME_MOUNT, atau IRP_MJ_VOLUME_DISMOUNT.