Удалить некорректную привязку составного устройства к пользовательскому драйверу

В нашем последнем пользовательском драйвере WHQL есть неправильная запись для одного из наших будущих продуктов. Предстоящий продукт — составное устройство, и в нашем WHQL-драйвере есть запись, которая соответствует идентификатору составного устройства, а не отдельных интерфейсов.

Когда новое устройство подключается к машинам с драйвером WHQL, устройство привязывается к нашему драйверу, а не к универсальному родительскому драйверу Windows (usbccgp.sys). Это предотвращает отображение интерфейсов в устройстве.

Мы могли бы исправить это вручную, удалив драйвер устройства и связав его с драйвером usbccgp.sys. В Vista и более поздних версиях мы могли удалить двоичные файлы драйвера во время удаления. Но прямого способа полностью удалить бинарники драйверов в XP нет. Это очень затрудняет чистое удаление драйвера.

Можно ли это исправить с помощью деинсталлятора? Каков наилучший способ исправить поврежденную машину автоматически?


person Palladin    schedule 06.05.2013    source источник


Ответы (1)


Загрузите комплект разработки драйверов Windows (Win DDK) и найдите исполняемый файл devcon.exe для вашей архитектуры. Затем из командной строки с повышенными правами:

devcon.exe find =usb

Список всех ваших текущих устройств.

devcon.exe -r remove =usb *YOUR_HARDWARE_ID*

Завершит отсоединение устройства и драйвера от целевой машины. Если у вас возникли проблемы с получением идентификатора оборудования, вы можете удалить все свои USB-драйверы и позволить Windows автоматически определять их после перезагрузки.

devcon.exe -r remove =usb *

Экстрим, да. Эффективно, да. Мы работаем с виртуальными коммуникационными портами весь день, и наши тестовые машины часто сталкиваются с той же проблемой, что и вы. Эта техника еще не потерпела неудачу.

person cory.todd    schedule 31.07.2013