为人机界面设备开发 Windows 设备驱动程序 (HID)
了解如何为人机界面设备(HID)开发 Windows 设备驱动程序。 HID 是通用 USB 驱动程序的设备类定义,用于支持 HID 设备,例如键盘、鼠标、游戏控制器等。 在 HID 之前,设备只能对鼠标和键盘使用严格定义的协议。 硬件创新要求在现有协议中重载数据,或者使用自己的专用驱动程序创建非标准硬件。 HID 支持启动模式设备,同时通过可扩展、标准化且易于编程的接口添加对创新的支持。
HID 设备包括字母数字显示器、条形码阅读器、扬声器、耳机、辅助显示器、传感器等。 硬件供应商还将 HID 用于其专有设备。
HID 一开始为 USB,但设计为与总线无关。 它为低延迟、低带宽设备而设计,但可以灵活地指定基础传输中的速率。 USB-IF 于 1996 年批准了 USB 上的 HID 规范。 不久之后,对其他传输的 HID 的支持。 有关当前支持的传输的详细信息,可参阅 Windows 中支持的 HID 传输。 还允许通过自定义传输驱动程序进行特定于供应商的传输。
HID 概念
HID 包含两个基本概念:“报告描述符”和“报告”。 报告是在设备和软件客户端之间交换的实际数据。 报告描述符描述设备支持的数据的格式和含义。
报表
应用程序和 HID 设备通过报告来交换数据。 有三种报告类型:
报告类型 | 说明 |
---|---|
输入报告 | 从 HID 设备发送到应用程序的数据,通常在控件的状态发生更改时发送。 |
输出报告 | 从应用程序发送到 HID 设备(例如键盘上的 LED)的数据。 |
功能报告 | 可以手动读取和写入的数据,通常与配置信息相关。 |
报告描述符中定义的每个顶级集合可能包含每个类型的零个或更多个报告。
用法表
USB-IF 工作组发布的 HID 用法表是描述允许哪些 HID 设备执行操作的报告描述符的组成部分。 这些 HID 使用情况表包含一个列表,其中包含描述报表描述符中特定项的预期含义和使用使用情况的说明。 例如,为鼠标左键定义了用法。 报告描述符可以定义应用程序在报告中的何处能够找到鼠标左键的当前状态。 用法表分为多个称为“用法页”的命名空间。 每个用法页描述了一组相关的用法,有助于组织文档。 使用情况和使用情况页的组合定义唯一标识使用情况表中特定使用情况的使用情况 ID。