HID应用程序编程接口(API).pdf
人体学接口设备(HID)是一种设备类定义,其用途是将PS/2样式的连接器替换为支持HID设备的通用USB驱动程序。HID设备涵盖了广泛的设备类型,包括但不限于键盘、鼠标、游戏控制器、字母数字显示器、条码读取器、音量控制、辅助显示器、传感器等。HID最初设计用于USB,但其架构与总线无关,既适用于低延迟、低带宽设备,又允许灵活指定传输速率。
HID设备间的数据交换是通过报告(Report)完成的,报告是设备和软件客户端之间交换的实际数据。报告描述符(Report Descriptor)定义了设备支持的数据格式和含义。应用程序和HID设备通过三种报告类型进行数据交换:输入报告、输出报告和功能报告。
HID体系结构在Windows中的驱动程序堆栈基于名为hidclass.sys的类驱动程序。系统中的HID客户端和传输微型驱动程序负责从用户模式或内核模式与HID设备进行通信。HID集合(Collection)是具有相同用法或目的的多个HID元素的分组,可以包含不同类型的报告。
HID用法表由USB-IF工作组发布,用于描述HID设备可以执行的操作。这些用法表定义了特定项目的预期含义和用法,如鼠标的左按钮。
在HID传输部分,文档讨论了基于USB的HID传输概述,包括即插即用支持和电源管理。HID设备支持选择性挂起功能,以优化电源管理。HID也支持基于I2C的传输,这允许HID设备使用I2C协议进行通信。文档还提及了非HID旧设备和驱动程序,例如PS/2(i8042prt)驱动程序和第三方筛选器驱动程序。安装操作系统驱动程序的环节包括创建INF文件和注册表设置。
DirectInput部分探讨了游戏控制器的支持,包含DirectInput的概述、原始接口、DirectX5.0接口以及轴选择。文档还包含了对虚拟HID框架(VHF)和传输微型驱动程序的介绍。VHF提供了一种为HID设备创建虚拟输入设备的方式。