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 作業已經取消。
若要指定 I/O 作業的取消例程,請呼叫 FltSetCancelCompletion。
若要清除針對 I/O 作業設定的取消例程,請呼叫 FltClearCancelCompletion。
要求
要求 | 價值 |
---|---|
目標平臺 | 普遍 |
標頭 | fltkernel.h (包括 FltKernel.h) |
連結庫 | FltMgr.lib |
IRQL | <= DISPATCH_LEVEL |