共用方式為


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

另請參閱

FLT_CALLBACK_DATA

FLT_IS_IRP_OPERATION

FltCancelIo

FltClearCancelCompletion

FltQueueDeferredIoWorkItem