UMDF 드라이버 작성의 이점

이 항목에서는 커널 모드 드라이버 대신 UMDF(User-Mode Driver Framework) 드라이버를 작성할 때의 이점에 대해 설명합니다.

UMDF 드라이버를 작성할 때 다음과 같은 이점을 얻을 수 있습니다.

  • UMDF 드라이버는 실행되는 프로세스의 주소 공간에만 액세스할 수 있으므로 운영 체제 안정성을 향상합니다.

  • UMDF 드라이버는 LocalService 계정으로 실행되므로 사용자의 데이터 또는 시스템 파일에 대한 액세스가 제한됩니다.

  • 사용자 모드 드라이버는 커널 모드 드라이버보다 훨씬 간단한 환경에서 작동합니다. 예를 들어 커널 모드 드라이버는 IRQL, 페이지 오류 및 스레드 컨텍스트를 고려해야 합니다. 그러나 사용자 모드에서는 이러한 문제가 없습니다. 사용자 모드 드라이버는 항상 요청 프로세스와 다른 스레드에서 실행되며 항상 페이지 오류를 수행할 수 있습니다.

  • UMDF 버전 2는 대부분의 영역에서 KMDF와 기능 패리티를 제공합니다. 전체 비교는 UMDF 2 기능과 KMDF 비교를 참조하세요.

  • UMDF 버전 2는 KMDF와 UMDF 간의 변환을 용이하게 합니다. KMDF 드라이버를 UMDF 2 드라이버로 변환하는 방법(그 반대의 경우도 마찬가지)을 참조하세요.

  • 사용자 모드 디버거를 사용하거나 커널 모드 디버거인 UMDF 버전 2부터 시작하여 UMDF 드라이버를 디버그할 수 있습니다.

  • KMDF 및 UMDF 버전 2부터 Wdfkd.dll 디버거 확장 명령을 사용할 수 있습니다. 자세한 내용은 디버거 확장을 참조하세요.

전체 WDF 모델의 기본 목표는 지능형 기본값을 제공하여 디바이스 하드웨어에 집중하고 대부분의 드라이버에 공통적인 작업을 수행하기 위해 코드를 작성하지 않도록 하는 것입니다.

이 목표를 달성하기 위해 프레임워크는 드라이버와 "옵트인" 방식으로 작동하도록 설계되었습니다. UMDF 드라이버를 작성할 때 디바이스에 영향을 주는 이벤트에 대해서만 콜백 루틴을 제공합니다. 예를 들어 일부 디바이스는 켜져 있고 꺼지기 직전에 개입해야 합니다. 이러한 디바이스의 드라이버는 프레임워크가 해당 시간에 호출하는 콜백 함수를 구현할 수 있습니다.

드라이버에는 디바이스에 디바이스별 지원이 필요한 이벤트만 처리하는 코드가 포함되어 있습니다. 다른 모든 이벤트는 프레임워크 기본값으로 처리할 수 있습니다.

또한 드라이버는 디바이스가 저전력 상태인 동안 프레임워크가 요청 디스패치를 중지하고 디바이스가 작동 상태로 돌아온 후 디스패치를 다시 시작하도록 I/O 요청 큐를 구성할 수 있습니다. 마찬가지로 디바이스가 저전력 상태인 동안 I/O 요청이 도착하면 프레임워크가 자동으로 디바이스를 켤 수 있습니다.