我们首先看一下Windows2000的注册表是怎样组成的。注册表有以下几个表项:
HKEY_LOCAL_MACHINE:HKEY_LOCAL_MACHINE(HKLM)是包含操作系统及硬件相关信息(例如计算机总线类型,系统可用内存,当前装载了哪些设备驱动程序以及启动控制数据等)的配置单元。实际上,HKLM保存着注册表中的大部分信息,因为另外四个配置单元都是其子项的别名。
HKEY_CURRENT_USER:HKEY_CURRENT_USER(HKCU)配置单元包含着当前登录到由这个注册表服务的计算机上的用户的配置文件。其子项包含着环境变量、个人程序组、桌面设置、网络连接、打印机和应用程序首选项(环境变量在Windows2000中被用来允许脚本、注册表条目,以及其它应用程序使用通配符来代替可能会发生改变的重要的系统信息)。这些信息是HKEY_USERS配置单元当前登录用户的SecurityID(SID)子项的映射。
HKEY_CLASSES_ROOT:HKEY_CLASSES_ROOT(HKCR)配置单元包含的子项列出了当前已在计算机上注册的所有COM服务器和与应用程序相关联的所有文件扩展名。这些信息是HKEY_LOCAL_MACHINE\SOFTWRE\Classes子项的映射
HKEY_USERS:HKEY_USERS(HKU)配置单元包含的子项含有当前计算机上所有的用户配置文件。其中一个子项总是映射为HKEY_CURRENT_USER(通过用户的SID值)。另一个子项HKEY_USERS\DEFAULT包含用户登录前使用的信息。
HKEY_CURRENT_CONFIG:HKEY_CURRENT_CONFIG(HKCC)配置单元包含的子项列出了计算机当前会话的所有硬件配置信息。硬件配置文件出现于WindowsNT版本4,它允许你选择在机器某个指定的会话中支持哪些设备驱动程序。这些信息是HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet子项的映射。
注册表是一个小型关系数据库。因此其中有一些重要的数据类型需要说明:
REG_NONE:未知类型,加密数据
REG_SZ:字符串,文本字符
REG_EXPAND_SZ:字符串,带有变量的文本
REG_BINARY:二进制,二进制数据
REG_DWORD:数值,数值数据
REG_DWORD_BIG_ENDIAN:数值,非Intel数值
REG_LINK:字符串,文件路径
REG_MULTI_SZ:多重字符串,字符串数组
REG_RESOURCE_LIST:字符串,硬件资源列表
REG_FULL_RESOURCE_DESCRIPTOR:字符串,硬件资源ID
REG_RESOURCE_REQUIREMENTS_LIST:字符串,硬件资源ID
下面我们来看看如何通过注册表的修改达到一些相应的功能:
更改注册表数据库允许的最大尺寸:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control中的RegistrySizeLimit中进行修改,其数据类型为DWORD;而其值的意义如下:
0:基于分页池(pagedpool)的大小,最大可达它的25%;
4-0xFFFFFFFE所分配的兆字节的数目;
0xFFFFFFFF分页池大小的80%
定位Windows3.x应用程序INI文件的注册条目:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\IniFile Mapping中,数据类型为REG_SZ
定位MS-DOS 应用程序的设置信息:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WOW\wowcmdline,通过编辑它的值,可以指定DOS程序运行时的一些参数:
%systemroot%\System32\Ntvdm.exe指定运行MS-DOS应用程序的缺省路径和虚拟设备管理器(VirtualDeviceManger,VDM);
-a 指定当前V D M 的命令行参数;
-f 改变Ntvdm.exe的路径;
-m隐藏VDM控制台窗口的显示;
-w 设置WOW(Win16onWin32)VDM应用程序
定位Windows 2000 的启动信息:HKEY_LOCAL_MACHINE\SYSTEM下会有以下几个表项:
ControlSet001:包含Windows2000的主控制集(primary control set)。用于在缺省时启动系统,但是首先会被复制到其它地方。
ControlSet002:包含Windows 2000的备份控制集(backup control set)。当ControlSet001发生故障时会被用来启动系统。
CurrentControlSet:包含Windows 2000正在使用的控制集(control set),是实际上用来启动系统的控制集。
最新相关文章
发表评论