2017-02-14 3 views
0

Я пытаюсь изменить установленный драйвер для устройства с помощью SetupAPI. Драйвер уже присутствует на ПК, только не выбранном в данный момент.Измените установленный драйвер устройства

Более конкретно, я пытаюсь отменить установку стороннего драйвера для составного устройства USB и вместо этого установить драйвер Windows по умолчанию.

Я уже получил его почти работает следующим образом: Во-первых, найти устройство с помощью

SetupDiGetClassDevs 
SetupDiEnumDeviceInfo 
SetupDiGetDeviceInstanceId 

найти устройство.

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

SetupDiBuildDriverInfoList 
SetupDiEnumDriverInfo 
SetupDiGetDriverInfoDetail 

После того, как я нашел водитель, я называю

SetupDiSetSelectedDriver 
SetupDiInstallDevice 

В этом на самом деле переключить драйвер обратно, как может наблюдаться в диспетчере устройств.

Однако сторонний драйвер помещает устройство в свою группу/категорию, и это изменение равно не отменено при использовании моего подхода.

Вручную выбирая стандартный драйвер композитного устройства USB в диспетчере устройств делает восстанавливает категорию устройства обратно на USB-контроллеры, поэтому я считаю, что мой процесс установки драйвера не завершен. Что я могу потерять?

ответ

0

Оказывается, рабочая последовательность установки

SetupDiSetSelectedDevice 
SetupDiSetSelectedDriver 
InstallSelectedDriver // From newdev.dll, not in a public header 
Смежные вопросы