Как установить аппаратный драйвер с помощью C ++ на Win32? - PullRequest
1 голос
/ 17 февраля 2010

Как мне установить аппаратный драйвер ( inf file ), используя C ++?

Платформа: Win32

Ответы [ 2 ]

2 голосов
/ 17 февраля 2010

Процесс обычно называется предустановка . (Обычный процесс установки запускается по прибытии аппаратного устройства.)

Соответствующие функции можно найти в <DIFxAPI.h> из DDK. Вы, вероятно, хотите позвонить DriverPackageInstall(). Ожидаемое возвращаемое значение - ERROR_NO_SUCH_DEVINST [sic], поскольку такого устройства еще не будет.

Есть некоторая 64-битная забава: вы не можете установить 64-битный драйвер из приложения Win32 (по крайней мере, в XP / Vista / Windows7 / 2003/2008). Следовательно, ваш установщик Win32 должен проверить, возвращает ли DriverPackageInstall() ERROR_IN_WOW64, а затем вызвать CreateProcess, чтобы запустить ваш 64-битный установщик.

2 голосов
/ 17 февраля 2010

Я бы посмотрел на использование функции InstallHinfSection в файле setupapi.dll.Вот соответствующие документы:

http://msdn.microsoft.com/en-us/library/aa376957%28VS.85%29.aspx

...