курсовые,контрольные,дипломы,рефераты
АРХИТЕКТУРА СИСТЕМНОГО РЕЕСТРА 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 1.ТИПЫ ДАННЫХ Конечным элементом дерева реестра являются ключи или параметры. Все параметры реестра имеют фиксированный тип. В табл.1 приведен полный список используемых типов. Не все и
Архитектура ЭВМ
Архитектура ЭВМ
Архітектура системи на базі процесора Pentium (Socket 7)
АСОИ на предприятиях торговли
Аутентифікація користувачів на основі токенів безпеки
Багатопараметровий вихорострумовий перетворювач для безконтактного контролю провідних трубчатих виробів
База данных
База данных MS Access
База данных видеокарт
Базовая система ввода-вывода BIOS
Copyright (c) 2025 Stud-Baza.ru Рефераты, контрольные, курсовые, дипломные работы.