필터 관리자 개념
필터 관리자(FltMgr.sys)는 파일 시스템 필터 드라이버에 일반적으로 필요한 기능을 구현하고 노출하는 시스템 제공 커널 모드 드라이버입니다. 타사 개발자는 이 기능을 활용하여 레거시 파일 시스템 필터 드라이버보다 개발이 더 간단한 "미니 필터" 필터 드라이버를 작성할 수 있으므로 개발 프로세스를 단축하면서 고품질의 강력한 드라이버를 생성할 수 있습니다.
FltMgr은 Windows 함께 설치되지만 미니 필터 드라이버가 로드될 때만 활성화됩니다. 대상 볼륨에 대한 파일 시스템 스택에 연결됩니다. 미니 필터 드라이버는 미니 필터 드라이버가 필터링하도록 선택한 I/O 작업에 대해 FltMgr 에 등록하여 파일 시스템 스택에 간접적으로 연결합니다.
미니 필터는 특정 순서로 연결됩니다. 첨부 파일의 순서는 부하 순서 그룹 및 고도에 따라 결정됩니다. 특정 볼륨의 특정 고도에서 미니 필터 드라이버의 첨부 파일을 미니 필터 드라이버의 인스턴스 라고 합니다.
미니 필터의 고도는 미니 필터 드라이버의 인스턴스가 항상 다른 미니 필터 드라이버 인스턴스를 기준으로 적절한 위치에 로드되도록 하고 FltMgr 이 I/O를 처리하기 위해 미니 필터 드라이버를 호출하는 순서를 결정합니다.
다음 그림에서는 필터 관리자와 세 개의 미니 필터 드라이버가 있는 간소화된 I/O 스택을 보여줍니다.

미니 필터 드라이버는 IRP 기반 I/O 작업뿐만 아니라 빠른 I/O 및 FSFilter(파일 시스템 필터) 콜백 작업을 필터링할 수 있습니다. 필터링하도록 선택한 각 I/O 작업에 대해 미니 필터는 사전 운용 콜백 루틴, 사후 콜백 루틴 또는 둘 다를 등록할 수 있습니다. I/O 작업을 처리할 때 FltMgr 은 해당 작업에 등록된 각 미니 필터 드라이버에 대해 적절한 콜백 루틴을 호출합니다. 해당 콜백 루틴이 반환되면 FltMgr 은 작업에 등록된 다음 미니 필터 드라이버에 대한 적절한 콜백 루틴을 호출합니다.
예를 들어 위의 그림에 있는 세 개의 미니 필터 드라이버가 모두 동일한 I/O 작업에 등록되어 있다고 가정하면 필터 관리자는 고도가 가장 높은 수준부터 가장 낮은(A, B, C) 순서로 사전 운용 콜백 루틴을 호출한 다음 추가 처리를 위해 I/O 요청을 다음 하위 드라이버로 전달합니다. 필터 관리자는 완료를 위해 I/O 요청을 받으면 각 미니 필터 드라이버의 사후 콜백 루틴을 최저에서 최고(C, B, A)로 역순으로 호출합니다.
레거시 필터 드라이버와의 상호 운용성을 위해 FltMgr은 둘 이상의 위치에 있는 파일 시스템 I/O 스택에 필터 디바이스 개체를 연결할 수 있습니다. FltMgr의 각 필터 디바이스 개체를 프레임이라고 합니다. 레거시 필터 드라이버의 관점에서 각 필터 관리자 프레임은 또 다른 레거시 필터 드라이버입니다.
각 필터 관리자 프레임은 고도의 범위를 나타냅니다. 필터 관리자는 기존 프레임을 조정하거나 새 프레임을 만들어 미니 필터 드라이버가 올바른 위치에 연결할 수 있도록 할 수 있습니다.
필터 관리자가 연결된 두 레거시 필터 사이에 필터 관리자 프레임이 이미 없으면 미니 필터를 연결할 수 없습니다. 미니 필터를 레거시 필터 위에 연결하려는 경우 두 번째 연결된 레거시 필터의 존재에 따라 아래에 연결할 수 있습니다. 레거시 필터 아래에 연결하려는 미니 필터는 대신 해당 레거시 필터 위에 연결할 수 있습니다.
중요
항상 레거시 필터와 미니 필터의 상호 운용성을 확인하거나 레거시 필터를 미니 필터로 바꾸는 것이 좋습니다. 자세한 내용은 레거시 필터 드라이버 포팅에 대한 지침을 참조하세요.
미니 필터 드라이버가 언로드되고 다시 로드되면 언로드된 동일한 프레임의 동일한 고도에서 다시 로드됩니다.
다음 그림에서는 두 개의 필터 관리자 프레임, 미니 필터 드라이버 인스턴스 및 레거시 필터 드라이버가 있는 간소화된 I/O 스택을 보여 줍니다.
