使用默认HID驱动程序时,应用程序忽略USB设备的传入数据包

格雷昂·迪拉赫

我正在为Windows 7上的团队编写通用USB HID设备的控制软件。由于我是实习生,因此我的工作机会有限:

  • 该软件必须在Windows上运行
  • 该软件必须使用Windows提供的默认HID驱动程序

我的问题是,但是我在使用HidUSB驱动程序时尝试访问设备(根据Zadig),我的中断传输读取尝试总是在设备实际发送数据时超时而导致。无论我是否使用HIDAPI,是否使用libusb,始终都可以写入设备,只有读取失败。(这是一个原始的设备atm,甚至没有完成最终的数据包数据规范,当前它只是向主机发送一个ON或OFF字符串,写入设备会在7种颜色之间将LED的状态更改为熄灭状态,这样肯定可以正常工作)

我想不到该设备有问题,因为如果我将Windows上的驱动程序替换为Zadig的WinUSB驱动程序,则它可以与libusb(并且hidapi之后无法打开该设备)一起使用,并且在Linux上也可以,只需读取/ dev / hidraw也可以返回数据。我还阅读了HID和USB规范,并且我知道设备描述符指出USB数据包大小为8,而HID输入报告的大小上限为20,所以我不知道设备使用的报告ID。

通过USBPcap和Wireshark检查Windows通信,我能注意到的唯一区别是,与WinUSB驱动程序一起使用CC时,与HidUSB驱动程序相比,主机数据包中请求数据的HidUSB驱动程序充满了00。

作为记录,我已经尝试过libusb,hidapi,HidLibrary,并且团队中没有人知道现在该怎么做。

我还读到Windows禁用对HID键盘和鼠标的访问,但是我没有发现最终以USB鼠标结尾的设备配置的实际示例。设备管理器在HID下列出了我的设备两次,一次是作为符合HID的设备或其调用方式(此处是本地化的Win7),一次是USB输入设备,但未在“鼠标”或“键盘”选项中列出该设备。

格雷昂·迪拉赫

将其整理一会儿,但是如果以后有人遇到类似的问题,我想在这里写下来。

如果报表的数据大小与报表描述符中的发送数据长度不匹配,则Windows HID驱动程序会使所有传入数据包无效。Linux和设备本身并不在意,这就是为什么在我提出问题时,我也将其排除在源头之外。在上面的示例中,开/关消息为4-5字节,而报告的20字节长度是问题,因为设备发送20B消息,所有可以通过HidUSB写入的解决方案也可以读取。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

启动 SpringBoot 应用程序时使用 JDBC 驱动程序创建 Postgres 数据库?

如何在C#Windows应用程序中为HID设备编写驱动程序

如何为USB-HID设备使用Linux内核驱动程序绑定/取消绑定接口?

强制为特定设备使用USB驱动程序

使用反应式mongo驱动程序时,控制台scala应用程序不会停止

在使用ElephantSQL在Bluemix中部署Liberty应用程序时找不到有效的JDBC驱动程序

使用反应式Mongo驱动程序时,Scala控制台应用程序不会退出

如何通过SMS数据包发送应用程序

从 efi 应用程序发送 TCP 或 UDP 数据包

使用MariaDB的SpringBoot:驱动程序尚未从服务器收到任何数据包

USB HID驱动程序签名-WHQL或代码签名证书

在gitlab CI中构建laravel应用程序时,出现“找不到驱动程序”异常

如何禁用设备(硬件)以使用hid-multitouch驱动程序?

从虚拟Linux网络设备驱动程序发送的RX数据包被丢弃

如何使用http或其他应用程序层协议检测数据包?

Windows WFP 驱动程序:在 ClassifyFn 回调中处理数据包时出现蓝屏

SCAPY 和 WIRESHARK 快速入门(包括驱动程序)(自定义 WIFI 数据包)

如何从skb提取整个数据包,包括以太网头,ip和tcp以及设备驱动程序的轮询方法中的有效负载

通过C#应用程序与HID USB设备进行通信

写入设备驱动程序时会发生什么?

使用Selenium Web驱动程序将数据插入Web应用程序中提供的html表中

如何使用默认的声音驱动程序

java.sql.SQLException:创建Web应用程序时(POSTGRES)未找到适合“ MY AWS DATABASE”的驱动程序

Linux是否具有USB端口的设备驱动程序?

如何将驱动程序与USB设备绑定?

禁用没有驱动程序的USB设备

Windows 7上的USB设备驱动程序安装问题

从Java创建设备驱动程序包

设备驱动程序和PPA软件包的问题