안전한 IRQL에서 완료 처리가 수행되도록 보장
쓰기 후 콜백 루틴에서 설명한 것처럼 미니필터 드라이버의 사전 운용 콜백 루틴이 FLT_PREOP_SYNCHRONIZE 반환하여 작업을 동기화하거나 작업이 기본적으로 동기적인 만들기 작업인 경우가 아니면 IRP 기반 I/O 작업에 대한 사후 콜백 루틴을 IRQL = DISPATCH_LEVEL 호출할 수 있습니다. (이 반환 값에 대한 자세한 내용은 FLT_PREOP_SYNCHRONIZE 반환을 참조하세요.)
그러나 아직 동기화되지 않은 IRP 기반 I/O 작업의 경우 미니필터 드라이버는 두 가지 기술을 사용하여 IRQL <= APC_LEVEL 완료 처리가 수행되도록 할 수 있습니다.
첫 번째 기술은 IRQL <= APC_LEVEL 완료 처리를 수행할 수 있을 때까지 운영 후 콜백 루틴이 I/O 작업을 보류하는 것입니다. 이 기술은 작업 후 콜백 루틴에서 I/O 작업 보류 중에서 설명합니다.
두 번째 기술은 FltDoCompletionProcessingWhenSafe를 호출하는 미니필터 드라이버의 사후 작업 콜백 루틴에 대한 것입니다. FltDoCompletionProcessingWhenSafe 는 현재 IRQL이 >= DISPATCH_LEVEL 경우에만 I/O 작업을 보류합니다. 그렇지 않으면 이 루틴은 미니필터 드라이버의 SafePostCallback 루틴을 즉시 실행합니다. 이 기술은 FltDoCompletionProcessingWhenSafe에 설명되어 있습니다.