У меня есть подписанный драйвер, и мне нужно установить его программно для конкретного USB-устройства с использованием C # (для Vista и 7 64-битных).
Я обнаружил, что очень просто использовать функцию DriverPackagePreinstall в DIFx API ( здесь - это как P / вызвать его): вызывая его до того, как устройствоПодключенный к USB, Windows может связать драйвер с устройством, как только это будет обнаружено.
Проблемы возникают, когда устройство подключено к USB без предварительной установки драйвера.Может случиться так, что для этого устройства будет установлен другой драйвер (на одном тестовом ПК я обнаружил, что установлен общий драйвер и устройство указано в разделе «Другие устройства» в диспетчере устройств).
Попытка решитьЭта проблема, до сих пор я был в состоянии обнаружить, что устройство там с помощью функций SetupDiGetClassDevs , SetupDiEnumDeviceInfo и SetupDiGetDeviceRegistryProperty дляидентифицировать устройство по его VID и PID (поставщик и идентификатор продукта).Теперь, когда у меня есть SP_DEVINFO_DATA для моего устройства, я полагаю, мне нужно вызвать функцию InstallSelectedDriver , не так ли?Если да, подскажите, пожалуйста, как выполнить P / Invoke для этой функции (я не могу найти ее на pinvoke.net) и как ее использовать, указав драйвер, который я хочу установить для моего устройства (предположим, у меня есть путь INF).