다음을 통해 공유


사전 작업 및 사후 콜백 루틴 작성

DriverEntry 루틴에서 미니 필터 드라이버는 필터링해야 하는 각 유형의 I/O 작업에 대해 최대 하나의 사전 운용 콜백 루틴과 최대 하나의 사후 콜백 루틴을 등록할 수 있습니다.

레거시 파일 시스템 필터 드라이버와 달리 미니 필터 드라이버는 필터링할 I/O 작업 유형을 선택할 수 있습니다. 미니 필터 드라이버는 사후 콜백을 등록하지 않고 지정된 유형의 I/O 작업에 대한 사전 운용 콜백 루틴을 등록할 수 있으며 그 반대의 경우도 마찬가지입니다. 미니 필터 드라이버는 사전 작업 또는 사후 콜백 루틴을 등록한 I/O 작업만 받습니다.

사전 운용 콜백 루틴은 레거시 필터 드라이버 모델의 디스패치 루틴과 유사합니다. 필터 관리자는 I/O 작업을 처리할 때 이 유형의 I/O 작업에 대해 하나를 등록한 미니 필터 드라이버 인스턴스 스택에 있는 각 미니 필터 드라이버의 사전 운용 콜백 루틴을 호출합니다. 스택에서 가장 높은 미니 필터 드라이버( 즉, 인스턴스의 고도가 가장 높은 드라이버)가 먼저 작업을 수신합니다. 해당 미니 필터 드라이버가 작업 처리를 마치면 필터 관리자로 작업을 반환한 다음, 작업을 다음으로 높은 미니 필터 드라이버에 전달하는 등의 작업을 수행합니다. 미니 필터 드라이버 인스턴스 스택의 모든 미니 필터 드라이버가 I/O 작업을 처리한 경우(미니 필터 드라이버가 I/O 작업을 완료하지 않은 경우) 필터 관리자는 작업을 레거시 필터 및 파일 시스템으로 보냅니다.

사후 콜백 루틴은 레거시 필터 드라이버 모델의 완료 루틴과 유사합니다. I/O 작업에 대한 완료 처리는 I/O 관리자가 작업에 대한 완료 루틴을 등록한 파일 시스템 및 레거시 필터에 작업을 전달하면 시작됩니다. 이러한 완료 루틴이 완료되면 필터 관리자가 작업에 대한 완료 처리를 수행합니다. 그런 다음 필터 관리자는 이 유형의 I/O 작업에 대해 하나를 등록한 미니 필터 드라이버 인스턴스 스택에서 각 미니 필터 드라이버의 사후 콜백 루틴을 호출합니다. 스택의 아래쪽 미니 필터 드라이버( 즉, 인스턴스의 고도가 가장 낮은 드라이버)가 먼저 작업을 수신합니다. 해당 미니 필터 드라이버가 작업 처리를 마치면 필터 관리자로 반환한 다음, 작업을 다음으로 낮은 미니 필터 드라이버로 전달하는 등의 작업을 수행합니다.

이 섹션에는 다음이 포함됩니다.

사전 작업 및 사후 콜백 루틴 등록

미니 필터 드라이버에서 I/O 작업 필터링

사전 운용 콜백 루틴 작성

사후 콜백 루틴 작성

I/O 작업에 대한 매개 변수 수정

I/O 작업에 대한 버퍼링 메서드 확인

I/O 작업에 대한 사용자 버퍼 액세스