Типы данных в реестре Windows
Windows поддерживает в реестре следующие типы данных:
- REG_BINARY. Двоичные данные. Редактор реестра отображает двоичные данные в шестнадцатеричном виде, и вы должны вводить двоичные данные, используя шестнадцатеричную нотацию. Примером значения типа REG_BINARY является последовательность 0x02 0xFE 0хА9 0x38 0x92 0x38 0хАВ 0xD9.
- REG_DWORD. Значения длиной в два слова (32 бита). Многие значения являются значениями типа REG_DWORD и используются как логические флаги (0 или 1, истина или ложь, да или нет). Также в значениях типа REG_DWORD можно встретить время в миллисекундах (1000 равно 1 секунде). 32-битные беззнаковые числа имеют диапазон от 0 до 4,294,967,295, а 32-битные знаковые числа имеют диапазон от -2,147,483,648 до 2,147,483,647. Вы можете просматривать и редактировать эти значения в десятичной или шестнадцатеричной форме. Примерами REG_DWORD являются значения 0xFE020001 и 0x10010001.
- REG_DWORD_BIG_ENDIAN. Значения длиной в два слова, расположенные в памяти в прямом порядке (первым хранится старший байт). Порядок байтов в этом случае является обратным по отношению к порядку, используемому для значений типа REG_DWORD. Например, число 0x01020304 хранится в памяти как 0x01 0x02 0x03 0x04. На Intel-совместимых архитектурах вы не часто будете сталкивать с этим типом значений.
- REG_DWORD_UTTLE_ENDIAN. Значения длиной в два слова, расположенные в памяти в обратном порядке (первым хранится младший байт). Этот тип является тем же, что и REGDWORD, и из-за того, что Intel-совместимые архитектуры хранят числа в памяти в этом формате, это наиболее общий числовой формат в Windows XP. Например, число 0x01020304 хранится в памяти как 0x04 0x03 0x02 0x01. Редактор реестра не предоставляет возможности создавать значения типа REG_DWORD_LITTLE_ENDIAN потому, что этот тип идентичен REGDWORD.
- REG_EXPAND_SZ. Текст переменной длины. Значение этого типа может включать переменные среды окружения, а программа, использующая эти значения, берет эти переменные из реестра и преобразует перед тем, как использовать их. Например, значение типа REG_EXPAND_SZ, содержащее %USERPROFILE%\Favorites, может быть переведено в C:\Documents and Settings\Jerry\Favorites перед тем, как быть использованным программой. API (Application Programming Interface - интерфейс программирования приложений) для работы с реестром полагается на то, что вызывающая программа сама преобразует переменные окружения в строки типа REG_EXPAND_SZ, таким образом, эти значения бесполезны, если программа не делает этого. Чтобы узнать, как использовать эти типы значений для решения некоторых интересных проблем, обратитесь к гл. 10 «Использование профилей пользователей».
- REG_FULL_RESOURCE_DESCRIPTOR. Список ресурсов устройства или драйвера устройства. Этот тип данных важен для Plug and Play, но не имеет большого значения в вашей работе с реестром. Редактор реестра не предоставляет способа создавать значения этого типа, но он позволяет вам просматривать их. В качестве примера этого типа данных смотрите HKLM\HARDWARE\DESCRIPTION\Description.
- REG_LINK. Ссылка. Вы не можете создавать значения типа REGLINK.
- REG_MULTI_SZ. Двоичные значения, содержащие список строк. Редактор реестра отображает по одной строке текста в строке и позволяет вам редактировать эти списки. В реестре каждая строка отделена от другой при помощи символа null (0x00), а весь список заканчивается двумя символами null.
- REG_NONE. Значения без определенного типа.
- REG_QWORD. Значения длиной в четыре слова (64 бита). Этот тип похож на REG_DWORD, но содержит 64 бита вместо 32. Единственная версия Windows XP, которая поддерживает этот тип — это Windows XP 64-Bit Edition (64-разрядная версия). Вы можете просматривать и редактировать эти значения в десятичной или шестнадца-теричной форме. Примером REG_QWORD является значение 0xFE02000110010001.
- REG_QWORD_BIG_ENDIAN. Значения длиной в четыре слова, расположенные в памяти в прямом порядке (первым хранится старший байт). Порядок байтов в этом случае является обратным по отношению к порядку, используемому для значений типа REG_QWORD. За дополнительной информацией об этом типе обратитесь к описанию типа REG_DWORD_BIG_ENDIAN.
- REG_QWORD_LITTLE_ENDIAN. Значения длиной в четыре слова, расположенные в памяти в обратном порядке (первым хранится младший байт). Этот тип является тем же самым, что и тип REGQWORD. REG_RESOURCE_LIST. Список значений типа REG_FULL_RESO- URCE_DESCRIPTION. Редактор реестра позволяет вам просматривать, но не редактировать значения этого типа.
- REG_RESOURCE_REQUIREMENTS_LIST. Список ресурсов, используемых устройством. Редактор реестра позволяет вам просматривать, но не редактировать значения этого типа.
- REG_SZ. Текст постоянной длины. Значения типа REG_SZ, вместе со значениями типа REG_DWORD, являются наиболее используемыми типами данных в реестре. Примерами значений типа REG_SZ являются «Microsoft Windows». Каждая строка заканчивается символом null. Программы не преобразуют переменные окружения, содержащиеся в значениях типа REG_SZ.
Рекомендуем для просмотра: