Windows系统HID键盘鼠标触摸板驱动程序架构
2022-06-06
2825
0
下图说明了Windows系统提供的用于 USB 键盘、鼠标和触摸板设备的驱动程序堆栈。
- KBDHID.sys:用于键盘的 HID 客户端映射器驱动程序。将 HID USAGE转换为扫描码以与现有键盘类驱动程序交互。
- MOUHID.sys:用于鼠标/触摸板的 HID 客户端映射器驱动程序。将 HID USAGE转换为鼠标命令(X/Y、按钮、滚轮)以与现有键盘类驱动程序交互。
- KBDCLASS.sys:键盘类驱动程序以安全的方式维护系统上所有键盘和小键盘的功能。
- MOUCLASS.sys:鼠标类驱动程序维护系统上所有鼠标/触摸板的功能。该驱动程序确实支持绝对全局鼠标和相对指针设备。这不是触摸屏的驱动程序,因为它由 Windows 中的不同驱动程序管理。
- HIDCLASS.sys:HID 类驱动程序。HID 类驱动程序是 KBDHID.sys 和 MOUHID.sys HID 客户端和各种传输(USB、蓝牙等)之间的粘合剂。
系统构建驱动栈如下:
- 传输堆栈为每个附加的 HID 设备创建一个物理设备对象 (PDO),并加载相应的 HID 传输驱动程序,该驱动程序又加载 HID 类驱动程序。
- HID 类驱动程序为每个键盘或鼠标 TLC 创建一个 PDO。复杂的 HID 设备(超过 1 个 TLC)公开为由 HID 类驱动程序创建的多个 PDO。例如,带有集成鼠标的键盘可能有一个标准键盘控件集合和一个不同的鼠标集合。
- 键盘或鼠标隐藏客户端映射器驱动程序加载在适当的 FDO 上。
- HID 映射器驱动程序为键盘和鼠标创建 FDO,并加载类驱动程序。
本文内容来源于:https://docs.microsoft.com/en-us/windows-hardware/drivers/hid/keyboard-and-mouse-hid-client-drivers
HID人机交互QQ群:564808376
UAC音频QQ群:218581009
UVC相机QQ群:331552032
BOT&UASP大容量存储QQ群:258159197
STC-USB单片机QQ群:315457461
USB技术交流QQ群2:580684376
USB技术交流QQ群:952873936