Fungsi FltCancelIo (fltkernel.h)
Rutinitas FltCancelIo membatalkan operasi I/O.
Sintaks
BOOLEAN FLTAPI FltCancelIo(
[in] PFLT_CALLBACK_DATA CallbackData
);
Parameter
[in] CallbackData
Arahkan ke struktur data panggilan balik (FLT_CALLBACK_DATA) untuk operasi I/O.
Mengembalikan nilai
FltCancelIo mengembalikan TRUE jika operasi I/O berhasil dibatalkan. Jika tidak, ia mengembalikan FALSE.
Keterangan
Driver minifilter yang memulai operasi I/O dengan memanggil rutinitas seperti FltPerformAsynchronousIo dapat membatalkan operasi dengan memanggil FltCancelIo. Operasi harus merupakan operasi I/O berbasis IRP, saat ini tidak boleh diposting ke antrean kerja driver minifilter sendiri, dan tidak boleh diselesaikan.
Jika IRP memiliki rutinitas pembatalan, FltCancelIo menetapkan bit pembatalan IRP dan memanggil rutinitas pembatalan.
Jika IRP tidak memiliki rutinitas pembatalan, dan oleh karena itu IRP tidak dapat dibatalkan, FltCancelIo menetapkan bit pembatalan IRP dan mengembalikan FALSE. IRP harus dibatalkan di lain waktu ketika menjadi dapat dibatalkan.
Jika driver minifilter yang tidak memulai operasi I/O berbasis IRP memanggil FltCancelIo, hasilnya tidak dapat diprediksi. Misalnya, IRP mungkin diselesaikan dengan kode NTSTATUS yang sukses meskipun bit pembatalannya ditetapkan.
FltCancelIo mengembalikan FALSE jika salah satu kondisi berikut ini benar:
- Operasi ini bukan operasi I/O berbasis IRP.
- Tidak ada rutinitas pembatalan yang ditentukan untuk operasi I/O.
- Operasi I/O telah dibatalkan.
Untuk menentukan rutinitas pembatalan untuk operasi I/O, panggil FltSetCancelCompletion.
Untuk menghapus rutinitas pembatalan yang ditetapkan untuk operasi I/O, panggil FltClearCancelCompletion.
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Universal |
Header | fltkernel.h (termasuk FltKernel.h) |
Pustaka | FltMgr.lib |
IRQL | <= DISPATCH_LEVEL |