사전 작업 콜백 루틴에서 I/O 작업 완료
I/O 작업을 완료 하려면 작업에 대한 처리를 중지하고 최종 NTSTATUS 값을 할당하고 필터 관리자에 반환하는 것을 의미합니다.
미니필터 드라이버가 I/O 작업을 완료하면 필터 관리자는 다음을 수행합니다.
현재 미니필터 드라이버 아래의 미니필터 드라이버, 레거시 필터 또는 파일 시스템에 작업을 보내지 않습니다.
미니필터 드라이버 instance 스택의 현재 미니필터 드라이버 위에 있는 미니필터 드라이버의 사후 콜백 루틴을 호출합니다.
작업에 대한 현재 미니필터 드라이버의 사후 콜백 루틴(있는 경우)을 호출하지 않습니다.
미니필터 드라이버의 사전 운용 콜백 루틴 은 다음 단계를 수행하여 I/O 작업을 완료합니다.
콜백 데이터 구조의 IoStatus.Status 필드를 작업의 최종 NTSTATUS 값으로 설정합니다.
FLT_PREOP_COMPLETE 반환합니다.
I/O 작업을 완료하는 사전 운용 콜백 루틴은 CompletionContext 출력 매개 변수에서 NULL이 아닌 완료 컨텍스트를 설정할 수 없습니다.
미니필터 드라이버는 다음 단계를 수행하여 이전에 보류된 I/O 작업에 대한 작업 루틴에서 작업을 완료할 수도 있습니다.
콜백 데이터 구조의 IoStatus.Status 필드를 작업의 최종 NTSTATUS 값으로 설정합니다.
작업 루틴이 FltCompletePendedPreOperation을 호출할 때 CallbackStatus 매개 변수에 FLT_PREOP_COMPLETE 전달합니다.
I/O 작업을 완료할 때 미니필터 드라이버는 콜백 데이터 구조의 IoStatus.Status 필드를 작업의 최종 NTSTATUS 값으로 설정해야 하지만 이 NTSTATUS 값은 STATUS_PENDING 또는 STATUS_FLT_DISALLOW_FAST_IO 수 없습니다. 정리 또는 닫기 작업의 경우 필드를 STATUS_SUCCESS 합니다. 이러한 작업은 다른 NTSTATUS 값으로 완료할 수 없습니다.
I/O 작업을 완료하는 것은 NTSTATUS 값에 따라 작업의 성공 또는 실패라고도 합니다.
I/O 작업을 성공 하려면 성공 또는 정보 NTSTATUS 값(예: STATUS_SUCCESS)으로 완료하는 것을 의미합니다.
I/O 작업에 실패 한다는 것은 오류 또는 경고 NTSTATUS 값(예: STATUS_INVALID_DEVICE_REQUEST 또는 STATUS_BUFFER_OVERFLOW)으로 완료하는 것을 의미합니다.
NTSTATUS 값은 ntstatus.h에 정의됩니다. 이러한 값은 성공, 정보, 경고 및 오류의 네 가지 범주로 구분됩니다. 이러한 값에 대한 자세한 내용은 NTSTATUS 값 사용을 참조하세요.