WebUsb productName 和 manufacturerName 为空

WebUsb productName and manufacturerName are empty

我正在开发基于微芯片微控制器的 USB 设备。我可以用 webusb 打开设备,与它对话等等。

只是 productName 和 manufacturerName 字段是空字符串,选择设备弹出窗口显示 "Unknown device from Microchip Technology Inc." 而不是设备实际返回的内容。

Windows 正确枚举设备,读取 BOS 描述符,其中包含 USB 2.0 扩展描述符 (LPM)、WebUSB 平台描述符和 MS OS 2.0 条目。

我正在使用 USBlyzer 软件捕获 USB 通信,我可以看到:

Windows 正确安装 WinUSB 驱动程序,并且设备在从本机应用程序(使用 libusb)打开时工作。我还可以从设备中读取产品名称和制造商名称字符串。

我在最新的 chrome、最新的 chrome canary、最新的 chromium(来自 tree)、最新的 opera 下进行了测试 在所有这些设备下,设备显示为 "unknown device from Microchip Technology Inc."(基本上是从 VID 中扣除的名称)。我一定是做错了什么,但我什至不知道从哪里开始追踪这个问题。

在 "chrome://device-log" 中,我可以看到如下条目:'Failed to submit transfer: Entity not found' 就在 'USB device added: vendor=1240 "", product=60944 "", serial="4326", guid=fcc527ca-5c19-45e0-9334-745475ae430d' 之前,这不是很有帮助。

Chrome 在枚举期间从设备读取 productNamemanufacturerName 等字符串的方式已知在 Windows 上存在错误,因为它与设备的其他部分竞争Windows 驱动程序堆栈。目前正在实施的 Windows 上有一个新的 USB 后端解决了这个问题。 issue 637404 正在跟踪这项工作。对于某些设备类型,它已经可以正常工作,您可以通过将 chrome://flags#new-usb-backend 设置为启用来对其进行测试。