다음을 통해 공유


다른 파일 시스템 필터 드라이버와 공존

파일 시스템 필터 드라이버에서 제대로 처리해야 하는 가장 교활한 문제 중 하나는 다른 필터 드라이버와 공존하는 것입니다. 다른 파일 시스템 필터 드라이버와 공존하도록 파일 시스템 필터 드라이버를 빌드하는 경우 다음 문제를 고려하는 것이 가장 좋습니다.

  • 필터 드라이버는 작업에 다른 필터 드라이버가 있는지 고려해야 합니다. 필터 드라이버에서 수행하는 모든 작업은 동일하거나 다른 기술을 사용하여 추가 필터 드라이버에서 살아남을 수 있을 만큼 강력해야 합니다.

  • 필터 드라이버는 시스템의 기본 동작을 변경하여 다른 필터의 동작에 영향을 미칠 수 있습니다.

  • 필터 드라이버 수를 늘리면 부족한 리소스, 특히 스택 공간의 소비가 증가합니다. 파일 시스템 필터 드라이버는 이러한 부족한 리소스의 사용을 최소화하기 위해 노력해야 합니다. 그렇지 않으면 악의적인 사용자 애플리케이션이 이러한 약점을 활용하여 시스템이 실패할 수 있습니다. 개발자는 완료 경로 및 오류 경로에 특히 주의해야 합니다.

  • 필터 드라이버는 하위 드라이버(필터 드라이버 또는 파일 시스템)에 보내는 내용에 보수적이어야 하며 허용하는 내용에서 자유로워야 합니다. 가능한 경우 필터 드라이버는 기본 드라이버에 보내는 작업이 간단하고 복잡하지 않은지 확인해야 합니다(예: 만들기 작업 중에 이름 바꾸기 작업을 수행하지 않음).

  • 필터 드라이버는 잠금에 주의해야 합니다. 파일 시스템 호출에서 잠금을 유지해서는 안 됩니다. 시스템의 다양한 구성 요소는 차단할 수 있고 차단할 수 없는 잠금 순서 및 함수에 대해 매우 정확하고 명시적인 가정을 합니다. 다른 잠금 계층을 추가하여 이를 방해하면 교착 상태가 쉽게 발생할 수 있습니다. Srv.sys 발생 하는 I/O 특히 신속 하 게 이러한 문제를 노출, 하지만 그들은 뿐만 아니라 정상적인 스트레스 테스트 하는 동안 볼 수 있습니다.

파일 시스템 필터 드라이버 개발자는 다른 필터 드라이버와 깔끔하게 공존하도록 설계 및 구현할 뿐만 아니라 다른 필터 드라이버와 필터 드라이버를 테스트하여 드라이버가 시스템 내에서 보안 문제를 발생시키지 않도록 해야 합니다.