Программная установка драйвера по inf-файлу в Win NT
От: DimichZubtsov Украина http://www.sbigame.narod.ru
Дата: 30.03.04 06:48
Оценка:
Здравствуйте!

Имеется следующая задача. Есть некоторый драйвер, и для него inf-файл. Нужно программно установить этот драйвер по этому inf-файлу. Для Windows 2000 я эту задачу решил (в DDK есть пример, по которому я и сделал, после регистрации свойств драйвера вызываю функцию UpdateDriverForPlugAndPlayDevices, которая собственно копирует все необходимые файлы а также регистрирует и по возможности запускает драйвер). Так что в Windows 2000 все отлично, но вот вопрос — как тоже самое сделать в Windows NT 4.0? Свойства драйвера я регистрирую как и в Windows 2000, все нормально — но вот как собственно сделать регистрацию драйвера (копирование нужных файлов и регистрацию/запуск драйвера) я не понял. Аналога UpdateDriverForPlugAndPlayDevices в NT нет. Пробовал вызывать SetupDiCallClassInstaller с параметром DIF_INSTALLDEVICE и DIF_INSTALLDEVICEFILES — ошибки не возвращает, но и ничего не регистрирует и не копирует. Подскажите, если кто сталкивался с такой проблемой. Заранее спасибо.
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 уважением,
Геннадий Майко.
Re: Программная установка драйвера по inf-файлу в Win NT
От: Polubes  
Дата: 02.02.06 16:40
Оценка:
Здравствуйте, DimichZubtsov, Вы писали:

DZ>Здравствуйте!


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


Столкнулся с этой же пробдемой для Windows 2000, только решить её не удалось. Тема для иеня новая, всё время делал програмные пакеты, а здесь появился этот драйвер. Есть *.inf файл, *.cat отсутствует. Если я правильно понимаю, это значит, что драйвер не подписанный Microsoft. В DDK смотрел, но ничего подходящнго не нашёл. Как делается " регистрации свойств драйвера"?
Буду очень благодарен за помощь

С уважением
Александр Зотов.
Re: Программная установка драйвера по inf-файлу в Win NT
От: Andrew S Россия http://alchemy-lab.com
Дата: 02.02.06 18:43
Оценка:
Используйте поиск по сайту. Проблема неоднократно обсуждалась. Удачи.
http://www.rusyaz.ru/pr — стараемся писАть по-русски
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.