다음을 통해 공유


필터 관리자 모델의 장점

필터 관리자 모델은 기존 레거시 필터 드라이버 모델에 비해 다음과 같은 이점을 제공합니다.

  • DAX 볼륨에 연결할 수 있습니다. 레거시 파일 시스템 필터 드라이버는 DAX(직접 액세스) 볼륨에 연결할 수 없습니다.

  • 필터 부하 순서를 보다 효율적으로 제어할 수 있습니다. 레거시 필터 드라이버와 달리 미니필터 드라이버는 언제든지 로드하고 고도에 따라 적절한 위치에 연결할 수 있습니다.

  • 시스템이 실행되는 동안 언로드할 수 있습니다. 시스템이 실행되는 동안 언로드할 수 없는 레거시 필터 드라이버와 달리 미니필터 드라이버는 언제든지 언로드할 수 있으며 필요한 경우 언로드되지 않을 수 있습니다. 필터 관리자는 모든 미니필터 드라이버 첨부 파일의 안전한 제거를 동기화하고 미니필터 드라이버가 언로드된 후 완료되는 작업을 처리합니다.

  • 필요한 작업만 처리할 수 있습니다. 필터 관리자는 미니필터 드라이버가 필터링할 IRP 기반 I/O 작업 유형(IRP 기반, 빠른 I/O 또는 FSFilter)을 선택할 수 있는 콜백 모델을 사용합니다. 미니필터 드라이버는 콜백 루틴을 등록한 I/O 요청만 받습니다. 미니필터 드라이버는 고유한 사전 운용 또는 사후 콜백 루틴 또는 둘 다를 등록할 수 있으며 페이징 I/O 및 캐시된 I/O와 같은 특정 유형의 작업을 무시할 수 있습니다.

  • 커널 스택을 보다 효율적으로 사용합니다. 필터 관리자는 사용하는 커널 스택의 양을 줄이기 위해 최적화되고 콜백 모델은 스택에 대한 미니필터 드라이버의 영향을 크게 줄입니다. 필터 관리자는 스택의 낮은 드라이버에서만 볼 수 있는 필터 시작 I/O를 지원하여 재귀 I/O의 영향을 줄입니다.

  • 중복 코드가 적습니다. 필터 관리자는 이름 생성을 위한 인프라를 제공하고 둘 이상의 미니필터 드라이버에서 사용할 파일 이름을 캐싱하는 등 여러 가지 방법으로 미니필터 드라이버에 필요한 코드 양을 줄입니다. 필터 관리자는 볼륨에 연결하고 볼륨을 사용할 수 있을 때 미니필터 드라이버에 알 수 있습니다. 필터 관리자는 다중 프로세서 시스템을 지원하도록 최적화되어 잠금이 더 효율적이고 오류가 발생하기 쉽습니다.

  • 복잡성이 감소합니다. 필터 관리자는 이름 지정, 컨텍스트 관리, 사용자 모드와 커널 모드 간의 통신, 파일 시스템 간의 마스킹 차이와 같은 일반적인 기능에 대한 지원 루틴을 제공하여 I/O 요청을 필터링하는 것을 간소화합니다. 필터 관리자는 보류 중인 IRP, 파일 시스템 스택 열거 및 연결과 같은 미니필터 드라이버를 대신하여 특정 작업을 처리합니다.

  • 새 작업을 더 쉽게 추가합니다. 미니필터 드라이버는 처리할 I/O 작업에 대해서만 등록되므로 기존 미니필터 드라이버를 중단하지 않고 새 작업에 대한 지원을 필터 관리자에 추가할 수 있습니다.

  • 여러 플랫폼에 대한 더 나은 지원. 미니필터 드라이버는 필터 관리자를 지원하는 모든 버전의 Windows에서 실행할 수 있습니다. 미니필터 드라이버가 런타임에 사용할 수 없는 I/O 작업에 등록하는 경우 필터 관리자는 해당 작업에 대해 미니필터 드라이버를 호출하지 않습니다. 미니필터 드라이버는 함수를 사용할 수 있는지 여부를 프로그래밍 방식으로 확인할 수 있으며 필터 관리자 구조는 확장 가능하도록 설계되었습니다.

  • 사용자 모드 애플리케이션에 대한 더 나은 지원. 필터 관리자는 미니필터 드라이버와 함께 작동하는 사용자 모드 서비스 및 제어 프로그램에 대한 일반적인 기능을 제공합니다. 필터 관리자 사용자 모드 라이브러리(Filterlib.dll)는 사용자 모드 서비스 또는 제어 프로그램과 미니필터 드라이버 간의 통신을 가능하게 합니다. Filterlib.dll 관리 도구에 대한 인터페이스도 제공합니다.