FltSetCancelCompletion 函式 (fltkernel.h)
小型篩選驅動程式會呼叫 FltSetCancelCompletion,以指定取消指定的 I/O 作業取消時要呼叫的取消例程。
語法
NTSTATUS FLTAPI FltSetCancelCompletion(
[in] PFLT_CALLBACK_DATA CallbackData,
[in] PFLT_COMPLETE_CANCELED_CALLBACK CanceledCallback
);
參數
[in] CallbackData
I/O 作業的回呼資料 (FLT_CALLBACK_DATA) 結構的指標。 此作業必須是 IRP 型 I/O 作業,且不得為分頁 I/O 作業。 若要判斷指定的回呼數據結構是否代表 IRP 型 I/O 作業,請使用 FLT_IS_IRP_OPERATION 巨集。 這是必要參數,而且無法 NULL。
[in] CanceledCallback
呼叫端提供的取消例程指標。 如果取消 CallbackData 所代表的 I/O 作業,篩選管理員會呼叫此例程。
此例程宣告如下:
typedef VOID
(*PFLT_COMPLETE_CANCELED_CALLBACK) (
IN PFLT_CALLBACK_DATA CallbackData
);
CallbackData
I/O 作業之FLT_CALLBACK_DATA結構的指標。
傳回值
FltSetCancelCompletion 會傳回STATUS_SUCCESS或適當的 NTSTATUS 值。
言論
FltSetCancelCompletion 指定要張貼至工作佇列之 IRP 型 I/O 作業的取消例程。
小型篩選驅動程式通常會在呼叫 FltQueueDeferredIoWorkItem,將作業張貼到工作佇列之前,立即呼叫 I/O 作業 FltSetCancelCompletion。
請勿針對任何 I/O 作業使用 FltCbdqXxx 例程,呼叫 FltSetCancelCompletion。
篩選管理員會呼叫 CanceledCallback 例程,而不需要保留系統取消微調鎖定或執行任何其他同步處理。 迷你篩選驅動程式本身必須提供任何必要的同步處理。
若要取消 I/O 作業,請呼叫 FltCancelIo。
要求
要求 | 價值 |
---|---|
目標平臺 | 普遍 |
標頭 | fltkernel.h (包括 Fltkernel.h) |
連結庫 | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | <= DISPATCH_LEVEL |