Удалить неправильную привязку составного устройства к пользовательскому драйверу
В нашем последнем пользовательском драйвере WHQL есть неправильная запись для одного из наших будущих продуктов. Предстоящий продукт - составное устройство, и наш драйвер WHQL содержит запись, которая соответствует идентификатору устройства для составного устройства, а не отдельным интерфейсам.
Когда новое устройство подключается к компьютерам, на которых установлен драйвер WHQL, устройство привязывается к нашему драйверу, а не к универсальному родительскому драйверу Windows (usbccgp.sys). Это предотвращает перечисление интерфейсов в устройстве.
Мы могли бы исправить это вручную, удалив драйвер для устройства и привязав его к драйверу usbccgp.sys. В Vista и более поздних версиях мы могли удалять двоичные файлы драйверов во время удаления. Но нет прямого способа полностью удалить двоичные файлы драйверов в XP. Это очень затрудняет чистую удаление драйвера
Это можно исправить с помощью деинсталлятора? Каков наилучший способ исправить поврежденную машину в автоматическом режиме?
1 ответ
Загрузите Windows Driver Development Kit (Win DDK) и найдите исполняемый файл devcon.exe для вашей архитектуры. Затем из командной строки с повышенными правами:
devcon.exe find =usb
Чтобы перечислить все ваши текущие устройства.
devcon.exe -r remove =usb *YOUR_HARDWARE_ID*
Завершит отсоединение устройства и драйвера от целевой машины. Если у вас возникли проблемы с получением идентификатора оборудования, вы можете удалить все ваши драйверы USB и позволить Windows автоматически определять их после перезагрузки.
devcon.exe -r remove =usb *
Экстрим, да. Эффективно, да. Мы работаем с виртуальными коммуникационными портами весь день, и наши тестовые машины часто сталкиваются с той же проблемой. Эта техника еще не сработала.