Наверх Системное программирование

Предыдущий раздел Оглавление Следующий раздел

2.2. СИСТЕМНЫЙ РЕЕСТР WINDOWS

При каждой загрузке системы Windows для получения информации об особенностях конфигурации пространства имен NT к данному пространству имен подключается файловая система особого типа, которая оптимизирована для небольших файлов и называется реестром. Реестр организован в виде отдельных разделов, каждый из которых хранится в отдельном файле. При загрузке Windows раздел SYSTEM загружается в память с помощью той же самой программы загрузки, загружающей и ядро системы, и другие необходимые файлы (например, загрузочные драйверы).

В разделе SYSTEM содержится большое количество важной информации о соответствиях драйверов и конкретных устройств, программном обеспечении, требующем автозагрузки, множестве других параметров, которые управляют работой операционной системы. Для определения загрузочных драйверов файловых систем и дисков, на которых содержится операционная система, сама программа загрузки пользуется информацией, находящейся в системном реестре. В табл. 2.2 представлен список используемых в системе разделов.

2.2. Разделы системного реестра (HKLM —HKEY_LOCAL_MACHINE)
Файл раздела Имя после монтирования Применение
STEM HKLM \SYSTEM Информация о конфигурации операционной системы (используется ядром)
HARDWARE HKLM \HARDWARE Раздел в памяти, в котором записано обнаруженное оборудование
BCD HKLM \BCD* База данных конфигурации загрузки
SAM HKLM\SAM Информация об учетных записях локальных пользователей
SECURITY HKLM\SECURITY Информация службы lsass об учетных записях и прочая информация безопасности
DEFAULT HKEY_USERS\DEFAULT Раздел по умолчанию для новых пользователей
NTUSER.DAT HKEY_USERS Раздел для пользователей, хранится в домашнем каталоге
SOFTWARE HKLM \SOFTTWARE Зарегистрированные в СОМ классы приложений
COMPONENTS HKLM \COMPONENTS Манифесты и зависимости для компонентов системы

В Windows имеется программа для изучения и редактирования системного реестра. Программа называется regedit. Она имеет удобный графический интерфейс, который позволяет открывать каталоги реестра, которые называются ключами реестра, и элементы данных, которые, в свою очередь, называются значениями ключей реестра. Использовать программу regedit необходимо с полной осторожностью, так как необдуманное изменение значений ключей реестра может повредить установленные приложения и даже привести к трудностям при загрузки системы, вплоть до отказа загрузки. Системный реестр остается одним из слабых мест операционной системы Windows.

Для разработчиков, использующих Win32 API, доступны вызовы для работы с системным реестром, например, вызовы для создания и удаления ключей, поиска значений в ключах и т. д. Основные вызовы представлены в табл. 2.3.

2.3. Основные вызовы Win32 API для работы с реестром
Функция Win32 API Описание
RegCreateKeyEx Создать новый ключ реестра
RegDeleteKey Удалить ключ реестра
RegOpenKeyEx Открыть ключ, чтобы получить его описатель
RegEnumKeyEx Перечислить подключи того ключа, описатель которого задан
RegQueryValueEx Поиск значения в ключе

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

Предыдущий раздел Оглавление Следующий раздел