Архитектура системного реестра Windows
Общая характеристика используемых типов параметров дерева реестра в разных версиях Windows. Сравнение способов хранения реестров Windows. Анализ взаимосвязи между кустами реестра и соответствующими им файлами. Понятие, сущность и значение reg-файла.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | реферат |
Язык | русский |
Дата добавления | 04.10.2010 |
Размер файла | 420,2 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
18
АРХИТЕКТУРА СИСТЕМНОГО РЕЕСТРА WINDOWS
1.ТИПЫ ДАННЫХ
Конечным элементом дерева реестра являются ключи или параметры.
Все параметры реестра имеют фиксированный тип. В табл.1 приведен полный список используемых типов. Не все из них используются в разных версиях Windows. Например, REG_QWORD явно предназначен для 64-битной версии XP. Кроме того, сохраняется преемственность поколений Windows - в более поздних версиях используются все типы ранних версий. Также следует учесть, что ряд типов используется только системой в некоторых разделах, и создать свой параметр такого типа с помощью редактора реестра не получится.
Таблица 1
Типы параметров
№ п/п |
Тип данных |
Описание |
|
Windows 9x |
|||
REG_BINARY |
Двоичные данные. Большинство сведений об аппаратных компонентах хранится в виде двоичных данных и выводится в редакторе реестра в шестнадцатеричном формате. Максимальная длина такого ключа 16Кб. |
||
REG_DWORD |
Данные, представленные целым числом (4 байта). Многие параметры служб и драйверов устройств имеют этот тип и отображаются в двоичном, шестнадцатеричном или десятичном форматах |
||
REG_SZ |
Текстовая строка фиксированной длины (например, "C:\Windows") |
||
Windows XP |
|||
REG_EXPAND_SZ |
Строка Unicode переменной длины. Этот тип данных включает переменные, обрабатываемые программой или службой |
||
REG_MULTI_SZ |
Многострочный текст Unicode. Этот тип, как правило, имеют списки и другие записи в формате, удобном для чтения. Записи разделяются пробелами, запятыми или другими символами |
||
REG_DWORD_LITTLE_ENDIAN |
32-разрядное число в формате “остроконечников” -- младший байт хранится первым в памяти. Эквивалент REG_DWORD |
||
REG_DWORD_BIG_ENDIAN |
32-разрядное число в формате “тупоконечников” -- старший байт хранится первым в памяти |
||
REG_LINK |
Символическая ссылка Unicode. Только для внутреннего использования (некоторые корневые разделы являются такой ссылкой на другие подразделы) |
||
REG_NONE |
Параметр не имеет определенного типа данных |
||
Windows XP (только в разделе HKLM\HARDWARE) |
|||
REG_RESOURCE_LIST |
Список аппаратных ресурсов. |
||
REG_FULL_RESOURCE_DESCRIPTOR |
Дескриптор (описатель) аппаратного ресурса. |
||
REG_RESOURCE_REQUIREMENTS_LIST |
Список необходимых аппаратных ресурсов. |
||
Windows Vista |
|||
REG_QWORD |
64-разрядное число |
||
REG_QWORD_LITTLE_ENDIAN |
64-разрядное число в формате “остроконечников”. Эквивалент REG_QWORD |
Ограничения на имена ключей.
Имена ключей не могут содержать:
обратные слеши (\),
пробелы ( ),
звездочки ( * )
вопросительные знаки (?).
Имя ключа не должно совпадать с именами ключей, располагающихся выше него по иерархии.
Имеется три типа системных элементов реестра, каждый из которых является корневым и имеет собственную иерархию:
TypeLib,
Interface,
CLSID.
1. Иерархия TypeLib идентифицирует положение инсталлированных в данный момент библиотек типов, которые являются базами данных, описывающими содержимое компонентов OLE. Широко используемая для поддержки автоматизации библиотека типов описывает прототипы функций для всех поддерживаемых интерфейсов, а также включает в себя ссылки на файлы-подсказки, и поэтому инструменты разработки могут вызвать соответствующую страницу подсказки и помочь создателям макрокоманд правильно воспользоваться серверами автоматизации.
2. Иерархия Interface содержит список, отсортированный по идентификаторам интерфейса, всех инсталлированных в системе интерфейсов. Это дает возможность прочитать имя интерфейса (IUnknown, IMalloc и т. д.) и подробности о каждом интерфейсе (количество функций в каждом интерфейсе и его базовый класс).
3. Иерархия CLSID детализирует все инсталлированные в данный момент (открытые) компоненты OLE. CLSID -- это идентификатор класса. CLSID обеспечивает связь между компонентами. Соединение с конкретным интерфейсом конкретного компонента требует сначала идентифицировать CLSID для доступа к компоненту, а затем IID для получения желаемого интерфейса. Так же, как и идентификаторы интерфейсов (типы данных IID и REFIID), идентификаторы классов (типы данных CLSID и REFCLSID) являются 128-разрядными (16 шестнадцатеричных цифр) числами, обеспечивающими машинный способ точной идентификации класса компонента. Также, как тип IID, CLSID имеет тип GUID:
typedef struct_GUID
{ DWORD Data1;
WORD Data2 ;
WORD Data3;
BYTE Data4[8];
}GUID;
Из этих трех типов элементов самым важным является элемент идентификатор класса, поскольку детали модуля компонента (файл с расширением .DLL или .EXE) хранятся в иерархии CLSID.
Например, следующий элемент реестра делает доступным компонент библиотеки PUBMEM:
HKEY_CLASSES_ROOT\CLSID\
{308D0430 - 1090 - 11cf - B92A - 00AA006238F8}\
InprocServer32 = C:\PETZOLD\CHAP20\PUBMEM.DLL
InprocServer32 означает, что файл, на который ссылаются, является 32-разрядным файлом с расширением .DLL.
2. ХРАНЕНИЕ РЕЕСТРА
Ранее была рассмотрена логическая структура реестра, но существует ещё и физическая структура, сохраняющая различные части реестра в отдельных файлах. Хранение реестров разных версий Windows имеют различия.
В Windows ХР реестр содержится в двух файлах SYSTEM.DAT и USER.DAT, находящиеся в каталоге Windows. В Windows Me был добавлен еще один файл CLASSES.DAT.
В Windows XP элементы реестра хранятся в виде атомарной структуры. Реестр разделяется на составные части, называемые ульями (hives), или кустами. Ульи хранятся на диске в виде файлов (табл.2). Некоторые ульи, такие, как HKLM\HARDWARE, не сохраняются в файлах, а создаются при каждой загрузке, то есть являются изменяемыми (vola-tile). При запуске системы реестр собирается из ульев в единую древовидную структуру с корневыми разделами.
Таблица 2
Ульи реестра
Улей |
Расположение |
|
HKLM\SYSTEM |
%SystemRoot%\system32\config\system |
|
HKLM\SAM |
%SystemRoot%\system32\config\SAM |
|
HKLM\SECURITY |
%SystemRoot%\system32\config\SECURITY |
|
HKLM\SOFTWARE |
%SystemRoot%\system32\config\software |
|
HKLM\HARDWARE |
Изменяемый улей |
|
HKLM\SYSTEM\Clone |
Изменяемый улей |
|
HKU\<SID_пользователя> |
%USERPROFILE%\ntuser.dat |
|
HKU\<SID_пользователя>_Classes |
%USERPROFILE%\Local Settings\Application Data\Microsoft\Windows\UsrClass.dat |
|
HKU\.DEFAULT |
%SystemRoot%\system32\config\default |
Кроме этих файлов, есть ряд вспомогательных, со следующими расширениями:
ALT -- резервная копия улья HKLM\SYSTEM для Windows 2000 (отсутствует в XP).
LOG -- журнал транзакций, в котором регистрируются все изменения реестра.
SAV -- копии ульев в том виде, в котором они были после завершения текстовой фазы установки.
Пользователи Windows 98 могут провести параллель между файлами с расширением .sav и файлом System.1st.
На рис.1 показаны взаимосвязи между кустами реестра и соответствующими им файлами. На рисунке показан каталог %SYSTEMROOT%\System32\Config, в котором содержатся файлы кустов с настройками для компьютера. Из рис.1 видно, что Windows сохраняет содержание подраздела HKLM\SOFTWARE в файле куста, который называется Software.
Рис.1. Взаимосвязи между кустами реестра и соответствующими им файлами
3. ФАЙЛ РЕЕСТРА
Знание реестра Windows будет не полным без умения написать reg-файл. Начнем с того, что это такое. Reg-файл - это файл, имеющий определенную структуру и содержащий информацию, которая может быть импортирована в реестр. Если была заблокирована работа с редактором реестра, то наиболее легким способом подредактировать реестр будет создание и импортирование reg-файла.
К reg-файлам предъявляются определенные требования по структуре. Начнем с того, что в первой строке файла обязательно должно быть введено (для Windows ХР) REGEDIT4 или (для Windows 2000/XP) Windows Registry Editor Version 5.00.
Обратите внимание на то, что буквы должны быть большие. Кроме этого в первой строке ничего быть не должно. После этого текста ОБЯЗАТЕЛЬНО должна быть пустая строка.
Затем, указывается раздел реестра, в котором надо прописать или изменить какие-то параметры. Название раздела должно быть заключено в квадратные скобки [...]. Ниже прописываются параметры, которые надо добавить, по одному параметру в строке. Если надо провести изменения в нескольких разделах, то должны оставлять одну пустую строку между последним параметром предыдущего раздела и названием следующего раздела. Может немного запутанно, но вот как это должно выглядеть:
REGEDIT4
[Razdel1]
"param1"="znachenie1"
"param2"="znachenei2"
"param3"="znachenie3"
[Razdel2]
"param_1"="znachenie_1"
Последняя строка в файле должна быть ПУСТОЙ. После того, как создали такой файл, просто запустите его как обычную программу, вам будет выдан запрос о необходимости провести изменения в реестре, и после положительного ответа информация из файла будет импортирована. О результатах импортирования Windows сообщит в появившемся после этого окне.
Windows 2000/XP обладает обратной совместимостью и может обрабатывать файлы, созданные в Windows 9x. Но если вы экспортировали файл в Windows XP и перенесли его на Windows 9x, то вручную измените первую строчку на REGEDIT4
Теперь пару слов о параметрах, которые можно добавлять. Как вы, наверное, обратили внимание, в приведенном выше примере добавляются параметры с помощью строк типа "param1"="znachenie1". Т.е. таким образом добавляется СТРОКОВЫЙ параметр с именем "param1" и значением "znachenie1". Но ведь существуют еще и параметры двоичные и DWORD. Формат записи для их добавления несколько другой. Для параметров типа DWORD используется строка
"param"=dword:XXXXXXXX
Здесь "param" - имя параметра, dword - указывает на тип этого параметра (буквы должны быть обязательно маленькие!) и после двоеточия следует значение из восьми цифр в шестнадцатеричном (!) формате. Однако большинство параметров DWORD имеют значение либо 0, либо 1, значит, вы должны написать соответственно либо 00000000, либо 00000001 вместо значков ХХХХХХХХ. Пробелы в строке не допускаются.
Для добавления двоичного параметра формат записи несколько иной:
"param"=hex:XX,XX,XX,....
Теперь расшифруем эту строку. С названием параметра все ясно, после знака "=" идет hex, т.е. указывается, что это будет двоичный параметр, затем идут шестнадцатеричные числа, отделенные запятой. Например, если надо добавить двоичный параметр равный "be 00 00 00", то пишется строка
"param"=hex:be,00,00,00
В реестре существуют параметры "По умолчанию" ("Default"). Чтобы присвоить им какое-то значение через reg-файл, надо добавить такую строку:
@="znachenie"
Здесь значок @ показывает, что у нас присваивается значение параметра "По умолчанию". Обратите внимание на то, что он не заключается в кавычки.
Теперь приведу пример простенького reg-файла, который прописывает в реестр сайт, устанавливающий домашнюю страничку в Internet Explorer'e:
REGEDIT4
[HKEY_CURRENT_USER\Software\ Microsoft\Internet Explorer\Main]
"Start Page" = "http://winchanger.narod.ru/"
Удаление параметров
С помощью reg-файлов можно не только устанавливать новые параметры, но и удалять их. Например, для удаления раздела из реестра надо перед его именем в квадратных скобках поставить символ "-". Вот как это выглядит:
[-HKEY_LOCAL_MACHINE\Software\QuickSoft\QuickStart]
Благодаря этой записи, подраздел "QuickStart" из раздела "QuickSoft" будет удален со всем содержимым.
Для удаления отдельных параметров используйте следующий синтаксис:
REGEDIT4
[HKEY_CURRENT_USER\Software]
"xxx"= --
Параметры командной строки
Редактор реестра можно запускать с некоторыми ключами
/s (импортирует значения из reg-файла без вывода диалогового окна)
/e (экспортирует параметры в reg-файл. Пример: regedit /e myfile.reg HKEY_USERS\.DEFAULT
Подобные документы
Программа "Редактор реестра". Разделы реестра Windows и их назначение. Хранение настроек экрана, раскладки клавиатуры, сетевых подключений, настроек программ. Сохранение изменений настроек, совершенных пользователем. Информация о настройках компьютера.
презентация [1008,0 K], добавлен 05.04.2017Возможности настройки операционной системы Windows. Сущность системного реестра. Описание API-функций работы с реестром. Диаграмма взаимодействия модулей. Интерфейс программы, основанный на разделении настроек на категории, представленные вкладками.
курсовая работа [47,7 K], добавлен 07.12.2010Рассмотрение правил создания, открытия и закрытия собственного ключа реестра. Описание функций, выполняющих процедуры сохранения произведенного изменения, добавления или удаления данных из ключей. Осуществление выборки информации из системного реестра.
реферат [24,5 K], добавлен 03.10.2010История развития реестра Windows, описание разделов, WinApi функции. Аналоги программ других разработчиков. Последовательность проектирования Windows-приложения, которое будет выводить аппаратную характеристику ПК на экран. Руководство пользователя.
курсовая работа [1,2 M], добавлен 23.07.2013Появление первых версий Windows, их графические интерфейсы и расширения для DOS. Семейства Windows 3.x и Windows 9.x, их особенности и основные функции. Эволюция технологии Plug and Play. Наиболее существенные улучшения в современных версиях Windows.
реферат [162,3 K], добавлен 13.06.2014Создание системной утилиты, работающей с реестром ОС Windows; структура, функции и роль реестра. Разработка программного обеспечения: интерфейс, структурная схема вызовов окон приложений; реализация и тестирование программы, процедуры; листинг модулей.
курсовая работа [1,2 M], добавлен 01.06.2013Теоретическое изучение и практическое применение приёмов работы с файлами в операционной системе Windows 95. Файлы и папки: основные понятия и правила формирования имен файлов в Windows. Характеристика и анализ особенностей операций с файлами и папками.
контрольная работа [139,9 K], добавлен 09.03.2011История создания. Windows 9x/NT. Операционная система Microsoft Windows. Преимущества и недостатки Windows. Некоторые клавиатурные комбинации Windows 9x и NT. Windows XP Professional. Наиболее совершенная защита.
реферат [19,3 K], добавлен 18.07.2004Характеристика операционной системы. История развития Windows. Сравнительная характеристика версий Windows. Элементы и инструменты Windows XP. Прикладные программы в Windows XP. Работа настольных и портативных компьютеров под управлением Windows.
доклад [19,1 K], добавлен 16.10.2011Работа с файлами, папками WINDOWS: понятие файла, папки, сохранение, переименование. Вычисление суммы порядковых номеров фамилии и имени. Алгоритм расчета себестоимости. реализация в других программах алгоритма и отчета по нему. Файлы, папки WINDOWS.
контрольная работа [17,9 K], добавлен 05.06.2008