Re: Программная установка драйвера по inf-файлу в Win NT
От: Геннадий Майко США  
Дата: 30.03.04 07:53
Оценка:
Здравствуйте, DimichZubtsov, Вы писали:

DZ>Имеется следующая задача. Есть некоторый драйвер, и для него inf-файл. Нужно программно установить этот драйвер по этому inf-файлу. Для Windows 2000 я эту задачу решил (в DDK есть пример, по которому я и сделал, после регистрации свойств драйвера вызываю функцию UpdateDriverForPlugAndPlayDevices, которая собственно копирует все необходимые файлы а также регистрирует и по возможности запускает драйвер). Так что в Windows 2000 все отлично, но вот вопрос — как тоже самое сделать в Windows NT 4.0? Свойства драйвера я регистрирую как и в Windows 2000, все нормально — но вот как собственно сделать регистрацию драйвера (копирование нужных файлов и регистрацию/запуск драйвера) я не понял. Аналога UpdateDriverForPlugAndPlayDevices в NT нет. Пробовал вызывать SetupDiCallClassInstaller с параметром DIF_INSTALLDEVICE и DIF_INSTALLDEVICEFILES — ошибки не возвращает, но и ничего не регистрирует и не копирует. Подскажите, если кто сталкивался с такой проблемой. Заранее спасибо.

--
Для установки драйверов в Windows NT 4.0 можно воспользоваться функциями service control manager'a. Что-то вроде следующего:
1. Открыть SCM с помощью функции OpenSCManager;
2. Попытаться сразу же открыть драйвер с помощью функции OpenService. Если удалось, то сразу же и запустить драйвер с помощью StartService;
3a. Если не удалось — т.е. драйвер в системе не установлен, то установить его с помощью функции CreateService.
3b. Скопировать файл драйвера в нужное место (обычно — в %SYSTEM32%\Drivers директорию);
3c. Запустить драйвер с помощью той же функции StartService;
4. Закрыть все handles, полученные на шагах 1 и 2;

C уважением,
Геннадий Майко.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.