情况: 我们有一个软件套件,与我们内部构建的设备进行交互。该设备在固件更新期间使用HID进行通信,除了在引导模式下。在引导模式下,该设备使用不同的VendorID和ProductID,并使用WinUSB进行通信。
问题: 为了更新固件,我们发送一条命令告诉设备进入引导模式。设备重新枚举新的VID和PID。在连接过程中,如果是新机器且之前没有连接过引导模式的设备,Windows会执行“安装驱动程序”的操作(实际上并没有需要安装的驱动程序)。软件接收到“设备已连接”事件,因此我们开始进行固件更新。一旦Windows完成“安装”驱动程序,它会重新枚举设备,关闭我们正在进行更新的文件句柄。
问题: 是否有一种方法可以检测Windows是否正在安装驱动程序,以便我们可以等待设备重新枚举然后开始更新过程?在我们的安装过程中是否有什么我们可以做的来预防这种行为?也许有一种方法可以告诉Windows,在连接到设备时不允许安装驱动程序?