FltSetCancelCompletion 函式 (fltkernel.h)
迷你篩選驅動程式會呼叫 FltSetCancelCompletion ,以指定要在指定的 I/O 作業取消時呼叫的取消例程。
語法
NTSTATUS FLTAPI FltSetCancelCompletion(
[in] PFLT_CALLBACK_DATA CallbackData,
[in] PFLT_COMPLETE_CANCELED_CALLBACK CanceledCallback
);
參數
[in] CallbackData
回呼數據的指標 (FLT_CALLBACK_DATA I/O 作業) 結構。 此作業必須是 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 作業指定取消例程。
Minifilter 驅動程式通常會在呼叫 FltQueueDeferredIoWorkItem 以將作業張貼到工作佇列之前,立即呼叫 I/O 作業的 FltSetCancelCompletion。
請勿針對任何 I/O 作業呼叫 FltSetCancelCompletion ,以使用 FltCbdqXxx 例程張貼至取消安全回呼數據佇列。
篩選管理員會呼叫 CanceledCallback 例程,而不保留系統取消微調鎖定或執行任何其他同步處理。 任何必要的同步處理都必須由迷你篩選驅動程式本身提供。
若要取消 I/O 作業,請呼叫 FltCancelIo。
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
標頭 | fltkernel.h (包含 Fltkernel.h) |
程式庫 | FltMgr.lib |
Dll | Fltmgr.sys |
IRQL | <= DISPATCH_LEVEL |