Программирование драйверов Windows

       

Как ни удивительно это будет


Как ни удивительно это будет узнать, но данный драйвер (собранный как версия checked для Windows 2000) устанавливается, запускается и работает под Windows 98 SE. Для запуска драйвера следует переписать его бинарный файл Example.sys в директорию C:\Windows\System32\Drivers и создать файл (назовем его Example98.reg) со следующими записями:

REGEDIT4 [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Example] "ErrorControl"=dword:00000001 "Type"=dword:00000001 "Start"=dword:00000002 "ImagePath"="\\SystemRoot\\System32\\Drivers\\Example.sys"

После этого следует войти в редактор Системного Реестра (Пуск — Выполнить — regedit) и произвести импорт созданного файла. Импорт данного файла в Реестр Windows 98 можно выполнить, если дважды кликнуть мышкой на этом файле в стандартной программе Проводник (после этого последует предложение импортировать файл в реестр Windows 98, на которое следует ответить утвердительно).

В результате импорта в Системном Реестре будет создан новый подраздел \Example

в ветви HKLM\System\CurrentControlSet\Services. В этот подраздел будут занесены параметры ErrorControl, ImagePath, Start и Туре, значение которых обсуждается ниже.

Параметр Туре определяет драйвер режима ядра (значение 1).

Параметр ImagePath определяет местонахождение файла загружаемого модуля (в нашем случае — C:\Windows\System32\Drivers\Example.sys).

Параметр Start определяет момент загрузки сервиса — автостарт после загрузки системы (значение 2).

Параметр ErrorControl определяет поведение системы при возникновении ошибок во время загрузки данного модуля. В данном случае (значение 1) означает следующее: в процессе загрузки ошибки игнорируются, но выводятся сообщения о них, при этом загрузка продолжается. (Другие значения использовать не рекомендуется.)

Несмотря на простоту внесения изменений в Системный Реестр путем импорта заранее созданного текстового файла соответствующего формата, этот метод следует применять с большой осторожностью, поскольку новая информация легко переписывает предшествующую (если она была, разумеется). Возможно, следует дополнительно побеспокоиться о сохранении прежних данных, которые подвергаются модификации (например, путем предварительного экспорта модифицируемых разделов в файл на диске средствами штатного редактора Системного Реестра).

Содержание раздела