Установка, удаление, запуск и установка
драйвера
Сейчас мы коротко рассмотрим операции установки и управления
драйверами. Драйверы в NT поддерживают динамическую загрузку и выгрузку.
Информация о драйвере, такая, как его имя, тип, местонахождение, способ
загрузки и др. находится в реестре в ключе HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Service
_name. Подробно обо всех подключах, которые могут там находиться, вы можете
узнать в статье «Using The NT Registry for Driver Install» в директории
NTInsider, либо в DDK Help\Programmers Guide\Driver Installation\Configuration
Registry.
Управлением сервисами и драйверами в системе занимается Service Control
Manager (SCM). Он управляет базой данных установленных сервисов и драйверов,
обеспечивает единый способ контроля над ними, а также предоставляет API.
Подробную информацию о функционировании SCM и предоставляемом им API можно
получить в MSDN Library в разделе Platform SDKABase Services\DLLs, Processes
and Threads\Services.
Примерная последовательность действий при установке/удалении запуске/остановке
драйвера следующая:
- 1. открытие SCM - OpenSCManager();
- 2. получение описателя для вновь созданного или уже существующего
драйвера - CreateService() или OpenService();
- 3. запуск\остановка\удаление драйвера - StartService(),
StopService(), DeleteSer-vice().
Установленный в системе драйвер также может быть запущен/остановлен
с помощью команды net start\net stop.
Рассмотрим другие способы установки драйверов:
Text Setup. Этот механизм
используют драйверы, устанавливаемые при установке ОС. Этот механизм
требует создания скрипт-файла txtsetup.oem. Его формат описан в DDK,
имеются примеры в \ddk\src\setup. В этом файле программе установки NT
указывается, какие файлы и куда копировать и какие ключи реестра создавать.
GUI Setup. Драйверы для
стандартных устройств, устанавливаемые по окончании установки ОС, используют
inf-файлы, формат которых и примеры также приведены в DDK.
Custom Setup. Прикладная
программа, использующая функции SCM.
|