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

       

Registry


Системный Реестр. База данных разнообразных настроечных и информационных параметров (вплоть до ключа, использованного при инсталляции данного экземпляра Windows), как для приложений пользовательского режима, так и конфигурационных параметров для всей системы. Файлы, составляющие эту базу, в 32-разрядных версиях операционной системы хранятся в директории %systemroot%\System32\Config\ и защищены системой от изменений. Несмотря на то, что программисты предпочитают обходить стороной это "страшное" место, тем не менее, запись конфигурационных параметров в Системный Реестр является нормальной и рядовой практикой. Такая программа, как Internet Explorer при простом движении курсора мышки по верхней части окна (где размещается меню и кнопки) делает до трех десятков операций над Реестром.

Информация об обнаруженном PnP оборудовании и установленных драйверах также размещается в Системном Реестре.

Составляющие разделов будем называть подразделами. В каждый подраздел могут быть вложены другие подразделы, но он может иметь и собственные данные, которые имеют имя и значение. Имена данных в подразделе будем далее называть параметрами (именами параметров), а собственно данные - значениями (значениями параметров.).

Для редактирования и просмотра содержимого Системного Реестра предназначена программа редактирования Реестра, которая в Windows 2000 запускается командой regedit32, а в Windows XP и Windows Server 2003 командой regedit.

Весь Реестр разделен на разделы. Самые крупные разделы носят названия hive (улей). Различают разделы HKEY_LOCAL_MACHINE, HKEY_CLASSES_ROOT, HKEY_CURRENT_CONFIG, HKEY_CURRENT_USER, HKEY_USERS. (Здесь НКЕY, очевидно, образовано от HiveKEY.)

Наиболее употребительным для разработчика драйверов является раздел HKEY_LOCAL_MACHINE, который далее будет часто упоминаться в сокращенной форме как HKLM. Он содержит общую информацию об аппаратном обеспечении и операционной системе (в том числе — установленных службах и драйверах). Инсталляция не-WDM драйвера может быть сведена к созданию подраздела в HKLM\System\CurrentControlSet\Services

с занесением туда трех-четырех параметров (и их значений) с последующей перезагрузкой, после чего драйвер появляется в системе.

Работа с Системным Реестром через системные функции в Windows NT требует использования кодировки Unicode.



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