共用方式為


FltCancelIo 函式 (fltkernel.h)

FltCancelIo 例程會取消 I/O 作業。

語法

BOOLEAN FLTAPI FltCancelIo(
  [in] PFLT_CALLBACK_DATA CallbackData
);

參數

[in] CallbackData

I/O 作業的回呼資料 (FLT_CALLBACK_DATA) 結構的指標。

傳回值

FltCancelIo 如果成功取消 I/O 作業,則會傳 回 TRUE true。 否則,它會 FALSE傳回 。

言論

藉由呼叫如 FltPerformAsynchronousIo 等例程來起始 I/O 作業的迷你篩選驅動程式, 可以呼叫 FltCancelIo來取消作業。 此作業必須是 IRP 型 I/O 作業,目前不得張貼到迷你篩選驅動程式自己的工作佇列,而且必須尚未完成。

如果 IRP 有取消例程,FltCancelIo 設定 IRP 的取消位,並呼叫 cancel 例程。

如果 IRP 沒有取消例程,因此 IRP 無法取消,FltCancelIo 設定 IRP 的取消位,並傳回 FALSE。 當 IRP 變成可取消時,應該在稍後取消。

如果未起始 IRP 型 I/O 作業的迷你篩選驅動程式呼叫 FltCancelIo,則結果無法預測。 例如,即使已設定其取消位,IRP 仍可能以成功的NTSTATUS程式碼完成。

如果下列任一條件成立,FltCancelIo 會傳回 FALSE

  • 作業不是 IRP 型 I/O 作業。
  • I/O 作業未指定取消例程。
  • I/O 作業已經取消。
若要判斷指定的回呼數據結構是否代表 IRP 型 I/O 作業,請使用 FLT_IS_IRP_OPERATION 巨集。

若要指定 I/O 作業的取消例程,請呼叫 FltSetCancelCompletion

若要清除針對 I/O 作業設定的取消例程,請呼叫 FltClearCancelCompletion

要求

要求 價值
目標平臺 普遍
標頭 fltkernel.h (包括 FltKernel.h)
連結庫 FltMgr.lib
IRQL <= DISPATCH_LEVEL

另請參閱

FLT_CALLBACK_DATA

FLT_IS_IRP_OPERATION

FltClearCancelCompletion

FltPerformAsynchronousIo

FltReadFile

FltSetCancelCompletion

FltWriteFile