作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
首先,我们正在使用将自身绑定(bind)到 USB 设备的第 3 方软件。当此 USB 设备断开并重新连接时,软件无法与设备通信将停止工作,直到程序重新启动。即它仅在启动时检测 USB 设备。
Windows 能够看到该设备,但每次重新连接时都会执行完整的检测/驱动程序安装过程,即使它重新连接到同一个 USB 端口也是如此。
这里的困难是我们没有办法修改第三方软件来在设备拔出后轮询合适的 USB 设备。
因此,我们想问一下是否有人知道如何编写一个 c++ 程序来保存 USB 状态/寄存器,防止 Windows 在重新连接时重新枚举 USB 端口,并恢复保存的状态/注册。如果是这样,我们将不胜感激在这方面的一些指导。当然,我们对解决此问题的其他方法持开放态度。
最佳答案
您不能在应用程序级别执行此操作。 USB 由驱动程序管理。此外,虽然 USB 设备的详细信息由特定驱动程序管理,但基础知识(例如枚举)由标准 Windows USB 驱动程序处理。这是合乎逻辑的:Windows 必须首先枚举设备以确定其供应商 ID 和产品 ID,然后确定要加载的特定驱动程序。
至于每次重新插入时的完全重新安装,这表明设备违反了 USB 规范或驱动程序违反了 Windows API。我的第一个猜测是设备没有正确的序列号。
关于c++ - 有没有办法保存 USB 设备,以便在重新插入后可以防止重新枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10942584/
我是一名优秀的程序员,十分优秀!