사용자 모드 드라이버 프레임워크

사용자 모드 드라이버 프레임워크(User-Mode Driver Framework, UMDF)는 마이크로소프트의 윈도우 비스타 운영체제에서 처음 도입되었으며 윈도우 XP에서도 사용할 수 있는 장치 드라이버 개발 플랫폼이다. 이는 특정 종류의 장치에 대한 드라이버 생성을 용이하게 한다.Programming Drivers for the UMDF

개요
표준 장치 드라이버는 특히 다중 스레드 소프트웨어 환경에서 매우 광범위한 시스템 및 장치 상태를 처리해야 하므로 작성하기 어려울 수 있다. 모든 표준 드라이버는 커널에 직접 접근할 때 높은 권한을 가지므로 잘못 작성된 장치 드라이버는 시스템에 심각한 손상(예: BSoD 또는 데이터 손상)을 일으킬 수 있다. 사용자 모드 드라이버 프레임워크는 직접적인 드라이버 접근 문제로부터 커널을 격리시키고, 대신 사용자 수준의 인터럽트 및 메모리 관리에서 전용 응용 프로그래밍 인터페이스를 가진 새로운 종류의 드라이버를 제공한다. 오류가 발생하면 이 새로운 프레임워크는 시스템에 영향을 주지 않고 즉각적인 드라이버 재시작을 허용한다. 이는 시스템에 간헐적으로 연결되거나 USB 또는 파이어와이어와 같은 버스 기술을 통해 핫 스와핑을 지원하는 장치에 특히 유용하다.

마이크로소프트에 따르면 UMDF 드라이버는 커널 모드 드라이버보다 작성 및 디버그가 더 간단하다. 그러나 UMDF는 성능 집약적이거나 상태가 많은 장치에는 사용되지 않는다.

UMDF의 첫 번째 버전은 2004년 10월 12일에 윈도우 미디어 플레이어 버전 10의 일부로 출시되었다. "크레센트"라는 코드명으로 미디어 전송 프로토콜 드라이버를 지원하도록 설계되었으며, 공개 인터페이스나 문서는 제공되지 않았다. 나중에 마이크로소프트는 UMDF를 장치 드라이버 개발 플랫폼으로 전환하기로 결정했다.

 버전 역사 
 사용자 모드 드라이버 프레임워크 1.5-1.9, 윈도우 XP 이상 지원.
 사용자 모드 드라이버 프레임워크 1.11, 윈도우 비스타 이상, 윈도우 서버 2008 이상 지원.
 사용자 모드 드라이버 프레임워크 2.0, 윈도우 8.1 이상 지원.

 아키텍처 
UMDF 드라이버는 마이크로소프트의 컴포넌트 오브젝트 모델 (COM) 기반의 DLL이다. 그러나 UMDF는 로드, 언로드 또는 병행성 제어에 COM을 사용하지 않는다. UMDF는 단지 프로그래밍 패턴으로 COM을 사용하며, 예를 들어 COM의 IUnknown 인터페이스를 활용한다. 시작 시, UMDF는 DllGetClassObject를 호출하여 드라이버의 IClassFactory 인터페이스에 대한 포인터를 얻고, 그 다음 IClassFactory 인터페이스의 CreateInstance 메서드를 사용하여 드라이버 콜백 객체의 인스턴스를 생성한다.

드라이버 객체는 프레임워크에서 제공하는 IWDFDriver 인터페이스의 인스턴스이다. 드라이버는 IDriverEntry COM 인터페이스를 통해 콜백 집합을 제공하는데, 이는 드라이버 사용자 정의를 위한 주요 진입점이다.

 같이 보기 
 윈도우 드라이버 프레임웍스 (WDF)
 커널 모드 드라이버 프레임워크 (KMDF)

 각주 

 외부 링크 

 피터 위랜드의 블로그 – 마이크로소프트 UMDF 팀의 개발 리더

분류:장치 드라이버
분류:윈도우 전용 자유 소프트웨어
분류:마이크로소프트 API
분류:MIT 라이선스 소프트웨어
분류:자유-오픈 소스 소프트웨어
분류:마이크로소프트의 자유 소프트웨어