Курсовая работа: Переопределение назначений клавиш на клавиатуре в операционной системе Windows
· Если AltPressed=1, то
запись заменяется на запись, соответствующую Alt + PrintScreen
2.5 Установка драйвера в системе
Для установки драйвера необходимо вызвать функции драйвера в определенный момент загрузки системы. Это необходимо для того, чтобы драйвер занял нужное место в стеке драйверов. Операционная система Windows осуществляет загрузку драйверов в порядке, прописанном в системном реестре.
Каждое устройство имеет свой раздел в реестре. ВсеэтиразделынаходятсявHKEY_LOCAL_MACHINE\SYSTEM\CurrentControleSet\Control\Class. Клавиатуре соответствует раздел {4 D 36 E 96 B - E 325–11 CE - BFC 1–08002 BE 10318}. У каждого устройства в его разделе есть ключи UpperFilters и LowerFilters. Это ключи типа MultiString. Они содержат имена верхних и нижних драйверов-фильтров данного устройства. Драйверы-фильтры загружаются в систему в том порядке, в каком они записаны в этих ключах.
Для регистрации разрабатывавемого драйвера как фильтра необходимо поместить его имя в первым в ключе UpperFilters.
Для регистрации нового драйвера необходимо создать раздел с именем этого драйвера в системном реестре по адресу HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services. Этот раздел должен содержать следующие ключи.
- Type типа двойное слово
Определяет тип подключаемого модуля. Для драйверов режима ядра значение всегда равно единице.
- Start типа двойное слово
Определяет метод загрузки драйвера. Может принимать одно из следующих значений:
· SERVICE _ BOOT _ START (0) – во время начальной загрузки ОС. Данное значение применяется, когда драйвер используется загрузчиком системы;
· SERVICE _ SYSTEM _ START (1) – после начальной загрузки ОС. Применяется для драйверов, которые самостоятельно осуществляют поиск оборудования, но не используются загрузчиком системы (нумераторы).
· SERVICE _ AUTO _ START (2) – автоматическая загрузка с помощью диспетчера управления сервисами (ServiceControlManager). Применяется для драйверов, не поддерживающих PlugandPlay.
· SERVICE _ DEMAND _ START (3) – загрузка «по требованию» либо диспетчера PlugandPlay при обнаружении устройства, либо диспетчера управления сервисами при поступлении от пользователя команды на загрузку.
· SERVICE _ DISABLED (4) – драйвер не загружается.
- ErrorControl типа двойное слово
Определяет уровень контроля ошибок. Может принимать одно из следующих значений:
· SERVICE_ERROR_IGNORE (0). В случае сбоя при загрузке драйвера игнорировать его и продолжить работу.