FltCancelIo 함수(fltkernel.h)
FltCancelIo 루틴은 I/O 작업을 취소합니다.
구문
BOOLEAN FLTAPI FltCancelIo(
[in] PFLT_CALLBACK_DATA CallbackData
);
매개 변수
[in] CallbackData
I/O 작업에 대한 콜백 데이터(FLT_CALLBACK_DATA) 구조체에 대한 포인터입니다.
반환 값
I/O 작업이 성공적으로 취소된 경우 FltCancelIo는 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 |