Повторное перечисление USB-устройства, которое обновлено со старого на новое встроенное ПО с изменениями в дескрипторе

Если я подключаю устройство USB к хосту, а затем обновляю устройство USB новой микропрограммой с изменениями в дескрипторе устройства. Хост будет использовать старый дескриптор.

Я знаю, что могу заставить устройство выполнить повторное перечисление, удалив инициализированный драйвер Windows для устройства и т. Д., Или я могу увеличить ProductId в дескрипторе, и устройство будет выполнять повторное перечисление.

Windows обналичивает информацию об устройстве и т. Д., И, таким образом, окна никогда не просят устройство предоставить информацию снова при повторном подключении об интерфейсах, конфигурации, конечных точках, дескрипторе HID и т. Д.

idProduct - изменение этого параметра приведет к повторному перечислению устройства, поскольку Windows будет считать его другим устройством.

iSerialNumber - изменение этого параметра приведет к повторному перечислению, поскольку окна должны различать два одинаковых продукта idProducts (подключены два одинаковых продукта)

bcdDevice - должен выполнить трюк повторного перечисления, но он не работает, как указано в спецификации USB.

У меня вопрос, как я могу принудительно выполнить повторное перечисление USB-устройства без удаления драйверов и т. Д. Или изменения idProduct или iSerialNumber?

Любая помощь будет оценена...

1 ответ

Решение состоит в том, чтобы добавить к iSerial, когда требуется повторное перечисление. Это единственное решение, если изменение PID бесполезно.

Когда добавляется iSerial, например, от 000000xx -> 000000yy, Windows будет рассматривать USB-устройство как новое устройство и повторно запускать драйверы и т. д.

Другие вопросы по тегам