Реферат: Архитектура системного реестра 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}\

--> ЧИТАТЬ ПОЛНОСТЬЮ <--

К-во Просмотров: 160
Бесплатно скачать Реферат: Архитектура системного реестра Windows