HID(휴먼 인터페이스 디바이스)용 Windows 디바이스 드라이버 개발
HID(휴먼 인터페이스 디바이스)용 Windows 디바이스 드라이버를 개발하는 방법을 알아봅니다. HID는 키보드, 마우스, 게임 컨트롤러 등과 같은 HID 디바이스를 지원하는 일반 USB 드라이버에 대한 디바이스 클래스 정의입니다. HID 이전에는 디바이스가 마우스 및 키보드에 대해 엄격하게 정의된 프로토콜만 활용할 수 있습니다. 하드웨어 혁신을 위해서는 기존 프로토콜에서 데이터를 오버로드하거나 고유한 특수 드라이버를 사용하여 비표준 하드웨어를 만들어야 했습니다. HID는 확장 가능하고 표준화되고 쉽게 프로그래밍 가능한 인터페이스를 통해 혁신을 지원하는 동시에 부팅 모드 디바이스를 지원합니다.
HID 디바이스에는 영숫자 디스플레이, 바코드 판독기, 스피커, 헤드셋, 보조 디스플레이, 센서 등이 포함됩니다. 또한 하드웨어 공급업체는 자신의 소유 디바이스에 HID를 사용합니다.
HID는 USB로 시작했지만 버스에 구애받지 않고 설계되었습니다. 짧은 대기 시간, 낮은 대역폭 디바이스를 위해 설계되었지만 기본 전송 속도를 유연하게 지정할 수 있습니다. USB-IF는 1996년에 USB를 통해 HID에 대한 사양을 비준했습니다. 다른 전송에 대한 HID에 대한 지원은 곧 뒤따랐습니다. 현재 지원되는 전송에 대한 세부 정보는 Windows에서 지원되는 HID 전송에서 찾을 수 있습니다. 공급업체별 전송은 사용자 지정 전송 드라이버를 통해서도 허용됩니다.
HID 개념
HID는 보고서 설명자와 보고서의 두 가지 기본 개념으로 구성됩니다. 보고서는 디바이스와 소프트웨어 클라이언트 간에 교환되는 실제 데이터입니다. 보고서 설명자는 디바이스에서 지원하는 데이터의 형식과 의미를 설명합니다.
보고서
애플리케이션 및 HID 디바이스는 보고서를 통해 데이터를 교환합니다. 다음과 같은 세 가지 보고서 유형이 있습니다.
보고서 종류 | 설명 |
---|---|
입력 보고서 | 일반적으로 컨트롤 상태가 변경되는 경우 HID 디바이스에서 애플리케이션으로 전송되는 데이터입니다. |
출력 보고서 | 애플리케이션에서 HID 디바이스로 전송된 데이터(예: 키보드의 LED). |
기능 보고서 | 수동으로 읽고 쓸 수 있으며 일반적으로 구성 정보와 관련된 데이터입니다. |
보고서 설명자에 정의된 각 최상위 컬렉션에는 각 형식의 보고서가 0개 이상 포함될 수 있습니다.
사용 현황 테이블
USB-IF 작업 그룹은 HID 디바이스가 수행할 수 있는 작업을 설명하는 보고서 설명자의 일부인 HID 사용 테이블을 게시합니다. 이러한 HID 사용 테이블에는 보고서 설명자에서 특정 항목의 의도된 의미와 사용을 설명하는 사용량 에 대한 설명이 포함된 목록이 포함되어 있습니다. 예를 들어 마우스의 왼쪽 단추에 대한 사용법이 정의됩니다. 보고서 설명자는 보고서에서 애플리케이션이 마우스 왼쪽 단추의 현재 상태를 찾을 수 있는 위치를 정의할 수 있습니다. 사용 테이블은 사용 페이지라고 하는 여러 이름 공백으로 나뉩니다. 각 사용량 페이지에서는 문서를 구성하는 데 도움이 되는 관련 사용량 집합에 대해 설명합니다. 사용량 페이지와 사용 페이지의 조합은 사용량 테이블의 특정 사용량을 고유하게 식별하는 사용 ID를 정의합니다.