Ситуация: У нас есть программный пакет, который взаимодействует с устройством, которое мы построили в доме. Устройство использует WinUSB для связи, EXCEPT в режиме загрузки во время обновления прошивки. В режиме загрузки устройство использует различные идентификаторы VendorID и ProductID и использует HID для связи.Есть ли способ определить, устанавливает ли Windows драйвер устройства?
Проблема: Для обновления прошивки мы отправляем команду и указываем устройству войти в режим загрузки. Устройство повторно перечисляет новый VID и PID. При обновлении прошивки на новой машине, у которой раньше не было устройства в режиме загрузки, в Windows появляется «установка драйвера», когда появляется загрузчик. (Нет драйвера для установки). Программное обеспечение получает событие DEVICE ATTACHED, поэтому мы начинаем обновление прошивки. Как только Windows завершит установку драйвера, он де-перечисляет и повторно перечисляет устройство, закрывая наш дескриптор файла в середине обновления.
Вопрос: Есть ли способ, чтобы обнаружить, если ОС Windows устанавливает драйвер, так что мы можем ждать, пока устройство повторно перечислены перед началом процесса обновления? Есть ли что-то, что мы можем сделать в нашей установке, чтобы превзойти это поведение? Может быть, способ сказать Windows, что мы не хотим разрешать установку драйвера, пока мы подключаемся к устройству?
Почему вы не проверяете, скажите 9 секунд через 3 интервала 3 секунды, если исполняемый файл «установка драйвера» работает в системе? – r1verside
Кроме того, я думаю, вы можете записать, сколько раз вы видели это устройство в своем приложении, чтобы вы знали, что это первый раз, и вам придется подождать. – r1verside
@ r1verside, я дал немного попробовать, но пока это не очень чистое или эффективное решение. В зависимости от того, решит ли Windows проверить драйвер в режиме онлайн, скорость соединения пользователя и т. Д., Количество ожидающих времени может сильно варьироваться. Плюс я бы предпочел не тратить время на пользователя, ожидая каждый раз, когда они обновляют прошивку, если я могу помочь. (Нет необходимости ждать, если Windows узнает устройство при последующем обновлении прошивки). – GPearson