6.5.12. 注册表

6.5.12.1. 简介

注册表(Registry)是包含操作系统和其它软件的所有设置和配置相关数据的目录。

注册表的逻辑结构类似于磁盘上的文件系统。注册表包含了键(key)和值(value)。其中键类似文件系统中的目录,而值就像文件,键可以包含子键(subkey)和值。值中存储着配置数据,数据有多种类型。最顶层的键称为根键(root key)。

涉及到注册表的有:

  1. 在启动时,boot loader从注册表中读取数据。

  2. 内核启动时,内核驱动从注册表中读取配置。

  3. 在登陆时,读取网络驱动设置、墙纸、菜单、启动项等。

  4. 在应用启动时,读取各种配置文件。

6.5.12.2. 数据类型

  • REG_NONE
    • 没有值

  • REG_SZ
    • 固定长度 Unicode

  • REG_EXPAND_SZ
    • 可变长度 Unicode

  • REG_BINARY
    • 任意长度二进制数据

  • REG_DWORD
    • 32 bit 数字

  • REG_DWORD_BIG_ENDIAN
    • 32 bit 数字,大端

  • REG_LINK
    • Unicode 符号链接,指向另一个注册表项

  • REG_MULTI_SZ
    • Unicode 字符串

  • REG_RESOURCE_LIST
    • 硬件资源描述

  • REG_FULL_RESOURCE_DESCRIPTOR
    • 硬件资源描述

  • REG_RESOURCE_REQUIREMENTS_LIST
    • 资源需求

  • REG_QWORD
    • 64 bit 数字

6.5.12.3. root key

  • HKEY_CURRENT_USER:和当前登陆用户有关的数据
    • AppEvents:事件关联

    • Console:控制台设定

    • Control Panel:控制面板

    • Environment:环境变量

    • EUDC:用户定义字符

    • Identities:Windows Mail账户信息

    • Keyboard Layout:键盘布局

    • Network:网络驱动信息

    • Printers:打印机

    • Software:软件

    • Volatile Environment:可变的环境变量

  • HKEY_USERS:所有用户有关的数据

  • HKEY_CLASSES_ROOT
    • 文件后缀关联

    • COM(Component Object Model)注册

    • UAC

  • HKEY_LOCAL_MACHINE:系统相关的数据
    • HKLMBCD00000000

    • HKLMCOMPONENTS

    • HKLMHARDWARE

    • HKLMSAM

    • HKLMSECURITY

    • HKLMSOFTWARE

    • HKLMSYSTEM

  • HKEY_PERFORMANCE_DATA:性能相关的数据

  • HKEY_CURRENT_CONFIG:当前配置文件