Я пытаюсь изменить установленный драйвер для устройства с помощью SetupAPI. Драйвер уже присутствует на ПК, просто в данный момент не выбран.
В частности, я пытаюсь отменить установку стороннего драйвера для составного USB-устройства и вместо этого установить драйвер Windows по умолчанию.
У меня это уже почти работает следующим образом: во-первых, найдите устройство с помощью
SetupDiGetClassDevs
SetupDiEnumDeviceInfo
SetupDiGetDeviceInstanceId
найти устройство.
Затем найдите драйвер составного USB-устройства по умолчанию, который я хочу установить, используя
SetupDiBuildDriverInfoList
SetupDiEnumDriverInfo
SetupDiGetDriverInfoDetail
Как только я нашел водителя, я звоню
SetupDiSetSelectedDriver
SetupDiInstallDevice
Это фактически переключает драйвер обратно, что можно наблюдать в диспетчере устройств.
Однако сторонний драйвер поместил устройство в собственную группу/категорию, и это изменение не отменяется при использовании моего подхода.
Ручной выбор стандартного составного драйвера USB-устройства в диспетчере устройств действительно восстанавливает категорию устройств обратно в USB-контроллеры, поэтому я думаю, что мой процесс установки драйвера не завершен. Что я могу упустить?