사용자 모드 드라이버 프레임워크
User-Mode Driver Framework개발자 | 마이크로소프트 |
---|---|
초기 릴리즈 | 2004년 10월 12일; | 전(
안정적 해제 | 2.27 / 2019년 3월 24일; 전 |
리포지토리 | github |
기록 위치 | C, C++ |
운영 체제 | 마이크로소프트 윈도 |
유형 | 기기 드라이버 개발 플랫폼 |
면허증 | MIT 라이선스 |
웹사이트 | docs |
UHDF(User-Mode Driver Framework)는 마이크로소프트의 윈도 비스타 운영체제와 함께 처음 도입된 기기 드라이버 개발 플랫폼으로, 윈도 XP에서도 이용 가능하다.특정 등급의 장치에 대한 드라이버 생성을 촉진한다.[1]
개요
표준 장치 드라이버는 특히 다중 스레드 소프트웨어 환경에서 매우 광범위한 시스템 및 장치 상태를 처리해야 하므로 쓰기 어려울 수 있다.모든 표준 드라이버는 커널에 직접 액세스할 때 높은 권한을 가지므로 잘못 작성된 장치 드라이버는 시스템에 심각한 손상(예: BSoD 및 데이터 손상)을 일으킬 수 있다.사용자-모드 드라이버 프레임워크는 커널을 직접 드라이버 접근의 문제로부터 격리하고, 대신 사용자 수준의 인터럽트와 메모리 관리에서 전용 애플리케이션 프로그래밍 인터페이스를 제공하는 새로운 등급의 드라이버를 제공한다.오류가 발생하면 새 프레임워크는 시스템에 영향을 주지 않고 즉시 드라이버를 재시작할 수 있다.이는 USB나 FireWire와 같은 버스 기술을 통해 시스템에 간헐적으로 연결되거나 핫 스와핑을 지원하는 장치에 특히 유용하다.
마이크로소프트에 따르면 UMDF 드라이버는 커널 모드 드라이버보다 쓰기 및 디버그가 더 간단하다.[2]그러나 UMDF는 성능집약적이거나 상태 저장성이 높은 장치에는 사용되지 않을 것이다.
UMDF의 첫 번째 버전은 2004-10-12년에 Windows Media Player 버전 10의 일부로 제공되었다.코드명 "Crescent"로, 미디어 전송 프로토콜 드라이버를 지원하도록 설계되었으며, 이를 위한 공개 인터페이스나 문서는 제공되지 않았다.이후 마이크로소프트는 UMDF를 기기 드라이버 개발 플랫폼으로 바꾸기로 결정했다.[3]
버전 이력
- 사용자-모드 드라이버 프레임워크 1.5-1.9, 윈도우즈 XP 이상을 지원한다.
- 사용자-모드 드라이버 프레임워크 1.11은 Windows Vista 이상 및 Windows Server 2008 이상을 지원한다.[4]
- 윈도우즈 8.1 이상을 지원하는 사용자 모드 드라이버 프레임워크 2.0.[5]
건축
UMDF 드라이버는 마이크로소프트의 컴포넌트 오브젝트 모델(COM)을 기반으로 하는 DLL이다. 다만, UMDF는 동시성 로딩, 언로드 또는 제어에 COM을 사용하지 않고, 예를 들어 COM의 IUnknown 인터페이스를 이용하는 등 프로그래밍 패턴으로만 사용한다.시작할 때 UMDF는 DllGetClassObject를 호출하여 드라이버의 IClassFactory 인터페이스에 포인터를 가져온 다음 IClassFactory 인터페이스의 CreateInstance 방법을 사용하여 드라이버 콜백 객체의 인스턴스를 만든다.
드라이버 오브젝트는 프레임워크에서 제공하는 IWDFDriver 인터페이스의 한 인스턴스다.드라이버는 드라이버 사용자 정의의 주요 진입점인 IDriverEntry COM 인터페이스를 통해 콜백 세트를 제공한다.
참고 항목
- Windows 드라이버 프레임워크(WDF)
- 커널 모드 드라이버 프레임워크(KMDF)
참조
- ^ UMDF용 드라이버 프로그래밍
- ^ "Advantages of Writing UMDF Drivers".
- ^ Charles Torre, Peter Wieland (2006-09-18). "Peter Wieland: User Mode Driver Framework". Channel 9. Microsoft. Retrieved 2006-09-18.
- ^ Microsoft Support. "User-Mode Driver Framework version 1.11 update for Windows Vista, Windows Server 2008, Windows 7, and Windows Server 2008 R2". Microsoft. Retrieved 2012-12-01.
- ^ "User-Mode Driver Framework Frequently Asked Questions (Windows Drivers)". Microsoft. Retrieved 2014-06-04.
외부 링크
- 공식 웹사이트
- Peter Wieland의 블로그 – Microsoft의 UMDF 팀 개발자 리드