虚拟USB设备状态错误信息:This device cannot start. (Code 10)
2022-05-25
776
0
记个错误的笔记:
在原来虚拟USB的设备上需要进行修改,没想到还是翻车了。这个问题应该还是很常见的,就是从设备管理器中查看该设备的状态,显示设备启动失败。
设备的状态信息显示:
This device cannot start. (Code 10)
An invalid parameter was passed to a service or function.
本人在英文操作系统上测试的。
如果使用Windbg跟踪,应是在获取配置描述符之后出现的问题,所以显然就是配置描述符写的有问题。
通过检查自己的配置描述符,发现自己将原来的一个输入输出端点描述符删除了输出端点描述符,而在接口描述符中忘了修改bNumEndpoints字段,导致顶层在解析配置描述符的时候,在获取第2个端点描述符的时候发现数据已经没有了..
所以,只需要通过修改接口描述符中的bNumEndpoints字段和实际的端点描述符数量一致即可。
这里我们修改了INF文件中根设备的描述符信息(其实就是为了带上USB中文网 usbzh的标识)
[Strings] SPSVCINST_ASSOCSERVICE= 0x00000002 ManufacturerName="HID Device" ClassName="HID Device" DiskName="HID Device Source Disk" dtenvtp.DeviceDesc = "USBZH Virtual Touch Device" dtenvtp.SVCDESC = "HID Device Enumerator"
修改后,重新安装驱动可以看到,一切正常了。
所以说,写代码会经常写到很多的BUG,不过没有关系,只要我们见的多了,一切都是笔误了。
HID人机交互QQ群:564808376
UAC音频QQ群:218581009
UVC相机QQ群:331552032
BOT&UASP大容量存储QQ群:258159197
STC-USB单片机QQ群:315457461
USB技术交流QQ群2:580684376
USB技术交流QQ群:952873936