HID 단추 드라이버
GPIO 단추에 대해 Microsoft에서 제공하는 단추 드라이버를 사용합니다. 그렇지 않으면 HID 데이터를 운영 체제에 삽입하는 드라이버를 구현합니다.
단추(전원, Windows, 볼륨 및 회전 잠금)는 일반적으로 사용자가 물리적 키보드를 사용할 수 없는 동안 컨버터블 또는 슬레이트와 같은 폼 팩터에서 발생하는 작업에 사용됩니다. 단추는 HID 단추 보고서 설명자를 제공하여 운영 체제를 HID 디바이스로 선언합니다. 이를 통해 시스템은 이러한 단추의 목적과 이벤트를 표준화된 방식으로 해석할 수 있습니다. 단추 상태가 변경되면 해당 이벤트는 HID 사용량에 매핑됩니다. HID 전송 미니 드라이버는 해당 이벤트를 상위 수준 드라이버에 보고한 다음, 사용자 모드 또는 커널 모드에서 HID 클라이언트에 세부 정보를 보냅니다.
실제 GPIO(범용 I/O) 단추의 경우 HID 전송 미니 드라이버는 정의된 GPIO 하드웨어 리소스에서 수신되는 인터럽트를 기반으로 이벤트를 보고하는 Microsoft에서 제공하는 기본 제공 드라이버입니다.
기본 제공 드라이버는 인터럽트 라인에 연결되지 않은 단추를 서비스할 수 없습니다. 이러한 단추의 경우 단추를 HID 단추로 노출하고 HID 클래스 드라이버(Microsoft 제공)에 상태 변경 내용을 보고하는 드라이버를 작성해야 합니다. 드라이버는 HID 원본 드라이버 또는 HID 전송 드라이버일 수 있습니다.
HID 단추를 만드는 경우 따라야 할 구현을 결정하는 데 도움이 되는 몇 가지 일반적인 포인터는 다음과 같습니다.
GPIO 단추를 구현하는 경우 Windows가 운영 체제에 이벤트를 보고하는 단추 드라이버로 기본 제공 드라이버인 Hidinterrupt.sys 로드할 수 있도록 시스템 ACPI의 단추를 설명합니다.
Microsoft는 가능한 한 기본 전송 미니 드라이버를 사용하는 것이 좋습니다.
다른 소프트웨어 구성 요소에서 삽입해야 하는 HID 형식의 데이터 스트림과 같은 비 GPIO 단추를 구현하는 경우 커널 모드 드라이버를 작성하도록 선택할 수 있습니다. Windows 10부터 VHF(Virtual HID Framework)와 통신하고 HID 클래스 드라이버에서 HID 보고서를 가져오고 설정하는 프로그래밍 인터페이스를 호출하여 HID 소스 드라이버를 작성할 수 있습니다.
또는 이전 버전의 Windows에서 지원하는 커널 모드 HID 전송 미니 드라이버를 작성할 수 있습니다. 그러나 잘못 작성된 KMDF HID 전송 미니 드라이버가 시스템을 충돌할 수 있으므로 이 방법은 권장하지 않습니다.
비 GPIO 단추를 구현하는 경우 HID 원본 드라이버를 작성하는 이전 모델을 사용하는 대신 사용자 모드에서 HID 전송 미니 드라이버를 작성할 수 있습니다. 이러한 드라이버는 커널 모드 드라이버보다 쉽게 개발할 수 있으며 이 드라이버의 오류는 전체 시스템을 버그 검사하지 않습니다.
Windows 10부터 HID 드라이버 프로그래밍 인터페이스는 OneCoreUAP 기반 Windows 버전의 일부입니다. 이러한 일반적인 인터페이스 집합을 사용하면 Virtual HID Framework 또는 전송 미니 드라이버 인터페이스를 사용하여 단추 드라이버를 작성할 수 있습니다. 이러한 드라이버는 데스크톱 버전용 Windows 10(Home, Pro, Enterprise 및 Education) 및 Windows 10 Mobile과 다른 Windows 10 버전 모두에서 실행됩니다.
단계별 지침은 유니버설 INF 파일 사용을 참조 하세요.