有没有办法强制windows重新读取USB DeviceDescriptor?

有没有办法强制windows重新读取USB DeviceDescriptor?,usb,cdc,deviceiocontrol,Usb,Cdc,Deviceiocontrol,我需要在CDC USB设备上读取8位带外数据配置/噪声,我想我可以在DeviceDescriptor中BCD设备的LSB中返回这些数据。。。但Windows似乎只在插件事件时读取该值-即使您在集线器上使用DeviceIOCtl重新读取DeviceDescriptor,它也不会在我的设备中命中断点,并且在插入设备后仍会使用常量bcdDevice-我知道MSB需要大于2,但它似乎都被缓存了 A.是否有办法强制Windows在端口打开时重新读取BCD设备?或者任何其他字符串或字节,它们似乎都被缓存了

我需要在CDC USB设备上读取8位带外数据配置/噪声,我想我可以在DeviceDescriptor中BCD设备的LSB中返回这些数据。。。但Windows似乎只在插件事件时读取该值-即使您在集线器上使用DeviceIOCtl重新读取DeviceDescriptor,它也不会在我的设备中命中断点,并且在插入设备后仍会使用常量bcdDevice-我知道MSB需要大于2,但它似乎都被缓存了

A.是否有办法强制Windows在端口打开时重新读取BCD设备?或者任何其他字符串或字节,它们似乎都被缓存了

B.有没有办法强迫Windows逐字读取并接受给定的波特率我想我可以使用波特率的MSB作为状态,但Windows不相信这是一个有效数字,所以它只报告9600,我猜-除非我关闭并重新打开端口,否则不会读取它-然后它尝试设置波特率而不被告知

C.如果Windows不玩无聊的游戏,有没有其他方法可以从我的设备中输入/输出1字节?我真的不希望我的设备显示为2个com端口,一个用于配置,一个用于数据,但接下来我必须找出哪个是哪个,这会让用户感到困惑-任何其他寄存器/USB消息-DSR、CTS、RI、CD-但我需要再输入4位,至少输出3位-并且需要原始-如果是CD,则DSR必须正常-
配置后,UseTermination/InvertData/DriveStrength存储在设备的闪存中,因此它只是一个串行端口,但我需要读取noiselevel[8位req'd],并设置这些寄存器-仅在请求时调试设备时…

作为问题C部分的答案,我建议当串行端口的波特率设置为某个特殊值(如123)时,进入配置模式,并允许在批量输入和输出端点上传输配置数据

制作一个带有一个USB串行端口和一个本机USB接口的复合设备,您可以使用WinUSB与之通信,这也很好,而且可能更正常