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 |