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 を返します。 それ以外の場合は、FALSE 返します。
備考
FltPerformAsynchronousIo などのルーチンを呼び出して I/O 操作 を開始するミニフィルター ドライバーは、FltCancelIo 呼び出すことによって操作を取り消すことができます。 操作は IRP ベースの I/O 操作である必要があります。ミニフィルター ドライバーの独自の作業キューに現在ポストされていない必要があり、完了していない必要があります。
IRP にキャンセル ルーチンがある場合、FltCancelIo IRP のキャンセル ビットを設定し、キャンセル ルーチンを呼び出します。
IRP にキャンセル ルーチンがないため、IRP が取り消し可能でない場合は、FltCancelIo IRP のキャンセル ビットを設定し、FALSE 返します。 IRP は、取り消し可能になったときに後で取り消す必要があります。
IRP ベースの I/O 操作を開始しなかったミニフィルター ドライバーが FltCancelIo 呼び出した場合、結果は予測できません。 たとえば、取り消しビットが設定されている場合でも、成功した NTSTATUS コードで IRP が完了する可能性があります。
FltCancelIo 、次のいずれかの条件に該当する場合 FALSE を返します。
- 操作は IRP ベースの I/O 操作ではありません。
- I/O 操作に取り消しルーチンは指定されません。
- I/O 操作は既に取り消されています。
I/O 操作のキャンセル ルーチンを指定するには、FltSetCancelCompletion を呼び出します。
I/O 操作に設定されたキャンセル ルーチンをクリアするには、FltClearCancelCompletion 呼び出します。
必要条件
要件 | 価値 |
---|---|
ターゲット プラットフォーム の | 万国 |
ヘッダー | fltkernel.h (FltKernel.h を含む) |
ライブラリ | FltMgr.lib |
IRQL | <= DISPATCH_LEVEL |
関連項目
FltClearCancelCompletion を する
FltPerformAsynchronousIo の
FltReadFile の
FltSetCancelCompletion の
FltWriteFile の