Типы данных реестра
В реестре системы хранится огромное количество информации. Там находится информация о профилях пользователей, сведения о программах и типах документов, которые создаются или могут быть созданы любой установленной программой, информация значках приложений и свойствах папок, а также обо всем установленном оборудовании и используемых этим оборудованием портах.
Поскольку реестр Windows представляет собой сложную логическую модель базы данных, вся сохраняемая информация, которая располагается в специальных информационных контейнерах (проще говоря - параметрах), должна быть классифицирована.
Классификация для хранения в параметрах значений происходит по типу данных, представляющих это значение. Всего таких типов одиннадцать.
Разделы и подразделы способны содержать значения 0 или 1, или сразу несколько параметров, значение по умолчанию и 0 для нескольких подразделов. Каждый из параметров имеет свое имя, тип и значение.
Три составляющие части параметров одной ветки реестра всегда располагаются в таком порядке: имя параметра, тип данных и значение параметра. Примерно так:
[ContigFileAllocSize] [REG_DWORD] [1000]
В таблице представленной ниже, содержится весь список существующих в системе типов данных, существующих сегодня в системе Windows. Максимальная длина, в символах, для имени параметра в разных вариациях виндовс разная:
• Windows Server 2003 / Windows XP / Windows Vista: максимум 16383
• Windows 2000: 260 символов ANSI или 16383 символов Юникод
• Windows 95 / Windows 98 / Windows Millennium Edition: 255 символов
Значения размера больше 2048 байт хранятся в папках с программой или приложением, а в реестр в таком случае заносится только имя этого файла. Это повышает эффективность использования реестра.
Максимальный размер для:
• Windows NT 4.0 / Windows 2000 / Windows XP / Windows Server 2003 / Windows Vista: Вся доступная память
• Windows 95, Windows 98 и Windows Millennium Edition: 16 300 байт
Ниже приведено назначение каждого из параметров.
REG_BINARY Необработанные двоичные данные. Большинство сведений об аппаратных компонентах хранится в виде двоичных данных и выводится в редакторе реестра в шестнадцатеричном формате.
REG_DWORD Данные, представленные целым числом (4 байта, 32 бита). Многие параметры служб и драйверов устройств имеют этот тип и отображаются в двоичном, шестнадцатеричном или десятичном форматах. Эквивалентами типа DWORD являются DWORD_LITTLE_ENDIAN (самый младший байт хранится в памяти в первом числе) и REG_DWORD_BIG_ENDIAN (самый младший байт хранится в памяти в последнем числе).
REG_EXPAND_SZ Расширяемая строка данных. Эта строка представляет собой текст, содержащий переменную, которая может быть заменена при вызове со стороны приложения.
REG_MULTI_SZ Многострочное поле. Значения, которые фактически представляют собой списки текстовых строк в формате, удобном для восприятия человеком, обычно имеют именно этот тип данных. Записи разделяются пробелами, запятыми или другими символами.
REG_SZ Текстовая строка в формате, удобном для восприятия человеком. Значениям, представляющим собой описания компонентов, обычно присваивается именно этот тип данных. Имеет фиксированную длину.
REG_LINK Символическая ссылка в формате Юникод.
REG_FULL_RESOURCE_DESCRIPTOR Последовательность вложенных массивов. Служит для хранения списка ресурсов, которые используются физическим устройством. Обнаруженные данные система сохраняет в разделе \HardwareDescription. В окне редактора реестра эти данные отображаются в виде двоичного параметра в шестнадцатеричном формате
REG_RESOURCE_LIST Последовательность вложенных массивов. Служит для хранения списка ресурсов, которые используются драйвером устройства или управляемым им физическим устройством. Обнаруженные данные система сохраняет в разделе \ResourceMap. В окне редактора реестра эти данные отображаются в виде двоичного параметра в шестнадцатеричном формате
REG_RESOURCE_REQUIREMENTS_LIST Последовательность вложенных массивов. Служит для хранения списка драйверов аппаратных ресурсов, которые могут быть использованы определенным драйвером устройства или управляемым им физическим устройством. Часть этого списка система записывает в раздел \ResourceMap. Данные определяются системой. В окне редактора реестра они отображаются в виде двоичного параметра в шестнадцатеричном формате
REG_QWORD Данные, представленные в виде 64-разрядного целого. Начиная с Windows 2000, такие данные отображаются в окне редактора реестра в виде двоичного параметра
REG_NONE Данные, не имеющие определенного типа. Такие данные записываются в реестр системой или приложением. В окне редактора реестра отображаются в виде двоичного параметра в шестнадцатеричном формате.