HID设备可以接收哪些数据?

ssc*_*rus 6 keyboard hid

我正在设计一个具有特殊功能的USB键盘.这样的HID设备可以从主机接收哪些信息?

我可以通过USB:

  • 从屏幕上的表格中读取数据?
  • 找出用户所使用的操作系统?
  • 找出是否有错误消息?
  • 甚至"知道"屏幕上可视化的内容,即选择了什么程序或者程序是窗口还是全屏?

谢谢!

rha*_*oto 8

设备无法从操作系统提供的标准驱动程序中获取任何此类信息,因为这将是一个安全问题。它可以接收您自己的驱动程序或应用程序发送的任何信息。与它通信的方式有很多种——您的设备可以呈现多个接口(将显示为单独的设备)、多个端点或使用控制通道。你肯定需要学习规范,我也发现这个教程很有帮助。

我做了类似的事情,并使用控制通道与 Windows 应用程序(通过标准的 Windows 驱动程序)交换特征数据。在 Windows 上,API 调用是HidD_SetFeature()HidD_GetFeature()

在设备方面,我的硬件运行嵌入式 Linux,我使用GadgetFS 库来创建用户模式驱动程序 - 比内核驱动程序更容易调试。