사전 운용 콜백 루틴에서 빠른 I/O 작업 허용
특정 상황에서 미니필터 드라이버는 빠른 I/O 작업을 완료하는 대신 허용하지 않도록 선택할 수 있습니다. 빠른 I/O 작업을 허용하지 않는 경우 빠른 I/O 경로가 작업에 사용되지 않습니다.
I/O 작업을 완료하는 것과 마찬가지로 빠른 I/O 작업을 허용하지 않는 것은 I/O 작업을 중지하고 필터 관리자에게 반환하는 것을 의미합니다. 그러나 빠른 I/O 작업을 허용하지 않는 것은 완료와 다릅니다. 미니필터 드라이버가 I/O 관리자가 발급한 빠른 I/O 작업을 허용하지 않는 경우 I/O 관리자는 동일한 IRP 기반 작업과 동일한 작업을 재발행할 수 있습니다.
미니필터 드라이버의 사전 운용 콜백 루틴 이 빠른 I/O 작업을 허용하지 않는 경우 필터 관리자는 다음을 수행합니다.
현재 미니필터 드라이버 아래의 미니필터 드라이버, 레거시 필터 또는 파일 시스템에 작업을 보내지 않습니다.
미니필터 드라이버 instance 스택의 현재 미니필터 드라이버 위에 있는 미니필터 드라이버의 사후 콜백 루틴을 호출합니다.
작업에 대한 현재 미니필터 드라이버의 사후 콜백 루틴(있는 경우)을 호출하지 않습니다.
미니필터 드라이버는 작업에 대한 사전 작업 콜백 루틴에서 FLT_PREOP_DISALLOW_FASTIO 반환하여 빠른 I/O 작업을 허용하지 않습니다.
필터 관리자가 이 필드를 자동으로 STATUS_FLT_DISALLOW_FAST_IO 설정하므로 사전 운용 콜백 루틴은 콜백 데이터 구조의 IoStatus.Status 필드를 설정해서는 안 됩니다.
FLT_PREOP_DISALLOW_FASTIO 빠른 I/O 작업에 대해서만 반환할 수 있습니다. 작업이 빠른 I/O 작업인지 확인하려면 FLT_IS_FASTIO_OPERATION.
미니필터 드라이버는 IRP_MJ_SHUTDOWN, IRP_MJ_VOLUME_MOUNT 또는 IRP_MJ_VOLUME_DISMOUNT 작업에 대한 FLT_PREOP_DISALLOW_FASTIO 반환할 수 없습니다.