注册表专题
注册表的由来
PC机及其操作系统的一个特点就是允许用户按照自己的要求对计算机系统的硬件和软件进行各种各样的配置。早期的图形操作系统,如Win3.x中,对软硬件工作环境的配置是通过对扩展名为.ini的文件进行修改来完成的,但INI文件管理起来很不方便,因为每种设备或应用程序都得有自己的INI文件,并且在网络上难以实现远程访问。
为了克服上述这些问题,在Windows 95及其后继版本中,采用了一种叫做“注册表”的数据库来统一进行管理,将各种信息资源集中起来并存储各种配置信息。按照这一原则,Windows各版本中都采用了将应用程序和计算机系统全部配置信息容纳在一起的注册表,用来管理应用程序和文件的关联、硬件设备
、状态属性以及各种状态信息和数据等。
与INI文件不同的是:
1.注册表采用了二进制形式登录数据;
2.注册表支持子键,各级子关键字都有自己的“键值”;
3.注册表中的键值项可以包含可执行代码,而不是简单的字串;
4.在同一台计算机上,注册表可以存储多个用户的特性。
注册表的特点有:
1.注册表允许对硬件、系统参数、应用程序和设备驱动程序进行跟踪配置,这使得修改某些设置后不用重新启动成为可能。
2.注册表中登录的硬件部分数据可以支持高版本Windows的即插即用特性。当Windows
到机器上的新设备时,就把有关数据保存到注册表 中,另外,还可以避免新设备与原有设备之间的资源冲突。
3.管理人员和用户通过注册表可以在网络上检查系统的配置和设置,使得远程管理得以实现。
我们在前面已经详细介绍了注册表的由来与基本结构。发现注册表比较复杂,但又安排得非常有条理,能有效地提高工作效率,为系统的维护提供了必要条件。由于注册表是一个二进制的配置数据库文件(Windows的命根子),因而,用户无法直接存取注册表。为了让高级用户能够编辑注册表,Windows2000 提供了注册表编辑器“c”和“Regedt32”。对这种只使用Windows提供的注册表编辑器进行编辑的操作。
编辑器在安装Windows时已经被安装到硬盘中了,但是并未在“附件”程序组中建有快捷方式。用户如果需要使用注册表编辑器,可以在“运行”对话框内输入Regedt32或Regedit即可打开注册表编辑器。或者在“命令提示符”中执行Regedt32.exe也可以进入注册表编辑器。
注册表介绍
注册表是什么
Windows的注册表(Registry)实质上是一个庞大的数据库,它存储这下面这些内容:
软、硬件的有关配置和状态信息,应用程序和资源管理器外壳的初始条件、首选项和卸载数据;
计算机的整个系统的设置和各种许可,文件扩展名与应用程序的关联, 硬件的描述、状态和属性;
计算机性能纪录和底层的系统状态信息,以及各类其他数据。
注册表的结构
在Windows中,注册表由两个文件组成:System.dat和User.dat,保存在windows所在的文件夹中。它们是由二进制数据组成。System.dat包含系统硬件和软件的设置,User.dat保存着与用户有关的信息,例如资源管理器的设置,颜色
以及网络口令等等。
Windows为我们提供了一个注册表编辑器(Regedit.exe)的工具,它可以用来查看和维护注册表。
注册表编辑器与资源管理器的界面相似。左边窗格中,由"我的电脑"开始,以下是六个分支,每个分之名都以HKEY开头,称为主键(KEY),展开后可以看到主键还包含次级主键(SubKEY)。当单击某一主键或次主键时,右边窗格中显示的是所选主键内包含的一个或多个键值(value)。键值由键值名称(value Name)和数据(value Data)组成。主键中可以包含多级的次级主键,注册表中的信息就是按照多级的层次结构组织的。每个分支中保存计算机软件或应建设之中某一方面的信息与数据。
注册表中格分支的功能如下:
HKEY-CLASSES-ROOT 文件扩展名与应用的关联及OLE信息
HKEY-CURRENT-USER 当前登录用户控制面板选项和桌面等的设置,以及映射的网络驱动器
HKEY-LOCAL-MACHINE 计算机硬件与应用程序信息
HKEY-USERS 所有登录用户的信息
HKEY-CURRENT-CONFIG 计算机硬件配置信息
HKEY-DYN-DATA 即插即用和系统性能的动态信息
注册表中的键值项数据
注册表通过键和子键来管理各种信息。但是注册表中的所有信息都是以各种形式的键值项数据保存的。在注册表编辑器右窗格中显示的都是键值项数据。这些键值项数据可以分为三种类型:
1.字符串值
在注册表中,字符串值一般用来表示文件的描述和硬件的标识。通常由字母和数字组成,也可以是汉字,最大长度不能超过255个字符。在本站中以"a"="***"表示。
2.二进制值
在注册表中二进制值是没有长度限制的,可以是任意字节长。在注册表编辑器中,二进制以十六进制的方式表示。在本站中以"a"=hex:01,00,00,00方式表示。
3.DWORD值
DWORD值是一个32位(4个字节)的数值。在注册表编辑器中也是以十六进制的方式表示。在本站中以"a"=dword:00000001表示。
注册表的备份与恢复
如果注册表遭到破坏,Windows将不能正常运行,为了确保Windows系统安全, 我们必须经常的备份注册表。
Windows每次正常启动时,都会对注册表进行备份,System.dat备份为System.da0, User.dat备份为User.da0。它们存放在Windows所在的文件夹中,属性为系统和隐藏。
以下为2种备份注册表的方法:
1,利用Windows中的注册表编辑器(Regedit.exe)进行备份
运行Regedit.exe,单击“文件“-->“导出注册表文件“命令,选择保存的路径,保存的文件为*.reg, 可以用任何文本编辑器进行编辑。
2,利用Win95光盘上Other\Misc\ERU\ERU.EXE紧急事故恢复工具(Emergency Recovery Utility)。利用这个工具不但可以备份和恢复注册表,还可以备份硬盘中的任何文件。
恢复:
当注册表损坏时,启动时Windows会自动用System.dat和User.dat的备份System.da0和User.da0进行恢复工作,如果不能自动恢复,可以运行Regedit.exe(它可以运行在在Windows下或DOS下),导入.reg备份文件。也可以运行ERU.EXE进行恢复。
如果您没有进行备份或者注册表损坏的非常严重,那么您可以试试最后一着:在c:\下有一个System.1st文件,属性为隐藏和只读,它记录着安装 Windows时的计算机硬件软件信息,用这个文件覆盖System.dat。但是这样的话您安装的应用软件可能会无法运行,必须重新安装。
注册表修改方法
通过修改注册表我们可以实现一些特殊的功能,但是注册表又是十分脆弱的,一个不小心就会出现错误。那么我们怎么样来修改注册表呢?我
为以下几种方法:
1.软件修改(安全)
通过一些专门的修改工具来修改注册表,比如:MagicSet、TweakUI、WinHacker等等。其实控制面板就是一个这样的工具,只不过功能简单一些。
2.间接修改(比较安全)
将要修改的写入一个.reg文件中,然后导入注册表中。.reg文件的基本格式为:
REGEDIT4
[HKEY_LOCAL_MACHINE\Software\Super Rabbit\MagicSet]
"@"="Super Rabbit Magic Set For Windows 98 V2.92"
"a"=dword:00000001
"b"=hex:02,05,00,00
……
[HKEY_LOCAL_MACHINE\Software\SCC\QuickViewer]
……
第一行为“REGEDIT4”,必须大写。
第二行为空行。
第三行使用[]括起子键分支,其中HKEY_LOCAL_MACHINE\Software\Super Rabbit\MagicSet就是一个子键分支。
第四、五、六行是该子键下的设置数据。其中@表示注册表编辑器右窗格中的"默认"键。
以下类似。
这样做的好处是可以避免错误的写入或删除等操作,但是要求用户了解注册表的内部结构和.reg文件的格式。
3.直接修改(最不安全,但最直接有效)
就是通过注册表编辑器直接的来修改注册表的键值数据项,这样做会避免在注册表中留下垃圾(虽然都很小,但越来越多会拖慢系统速度),但是要求用户有一定的注册表知识,熟悉注册表内部结构而且一定要小心谨慎。
注册表的数据结构
使用注册表编辑器之前,首先得了解注册表的数据结构,例如注册表的显示方式、主键与子键、键值项数据的类型等等。
注册表显示方式
在Windows系统中,注册表是采用“关键字”及其“键值”来描述登录项及其数据的。所有的关键字都是以“HKEY”作为前缀开头。实际上,“关键字” 是一个句柄。这种约定使得系统及应用程序的开发人员,可以在使用注册表中的API函数时把它用于应用程序的开发中。为此,Windows提供了若干API 函数,以便在开发 for Windows 应用程序时添加、修改、查询和删除注册表的登录项。
在注册表中,关键字可以分为两类:一类是由系统定义的,一般都称为“预定义关键字”;另一类是由应用程序定义的,由于安装的应用软件不同,其登录项也就不同。在Windows系统中,打开注册表编辑器,可以看到注册表中的关键字。
注册表通过主关键字(最上层的为“根键”,例如:HKEY_CURRENT_USERS就是一个根键,标题栏上也有显示)和子键来管理各种信息,下图中的 “Keyboard Layout”是一个主键,展开后就可以看到它里面的子键。注册表中的所有信息是以各种形式的“键值项数据”保存下来,如下图中的键值项Attributes的数据为“REG_DWORD:0”。其中“REG_DWORD”是该键值的数据类型;“0”是代表该键值被赋予的数值。
在注册表的左边窗口中,所有的数据都是通过一种树状结构,以键和子键的方式组织起来,十分类似于资源管理器内的目录结构。每个键都包含有一组特定的信息,每个键的键名都是与它所包含的信息相关的(注册表内是以英文的方式出现,比如‘Control Panel’表示的是控制面板内的一些内容)。
如果这个键包含子键,则在注册表编辑器窗口的左边出现一个“+”号,用来表示在这个文件夹内还有好多内容。如果这个文件夹被用户打开了,那么“+”号就变为“-”号,与我们使用资源管理器的方法是一样的。
注册表中的“键值数据项”的类型
在注册表中,“键值项数据”可分为下面三种类型。
二进制(BINARY)
在注册表中,二进制是没有长度限制的,可以是任意个字节的长度。在注册表编辑器中,二进制数据以十六进制的方式显示出来,如: “CustomColors”的键值就是一个二进制数据,双击键值名,出现“编辑二进制数值”对话框,我们可以在二进制和十六进制之间进行切换。
DWORD值(DWORD)
DWORD值是一个32位(4个字节,即双字)长度的数值。在注册表编辑器中,你将会发现系统以十六进制的方式显示DWORD值,在编辑DWORD数值时,可以选择用二进制、十进制或是十六进制的方式进行输入。
字符串值(SZ)
在注册表中,字符串值一般用来表示文件的描述、硬件的标识等。通常它由字母和数字组成。下图文本输入栏中的内容即为一个键值,它是一种字符串值类型。通过键值名、键值就可以组成一种键值项数据,这就相当于Win.ini、System.ini文件中小节下的设置行。其实,使用注册表编辑器将这些键值项数据导出后,其形式与.ini文件中的设置完全一样。
注册表数据类型
注册表的键中包含着各种不同格式的数据。数据类型可以这样来分类:
通用数据类型--RegEdit、RegEdt32及其它绝大多数注册表工具都支持,并能够对之进行编辑的数据类型。
Windows NT 专用数据类型--RegEdt32和另外几个注册表工具支持,并能够对其进行编辑的数据类型。
组件/应用程序专用的特殊数据类型--注册表工具支持这些数据类型,但是对于程序而言是有限度的。
用户则只能将其作为二进制数进行编辑。
实际上,注册表工具也可以对不支持的数据类型进行编辑,包括那些显示为REG_UNKNOWN类型的数据。但是编辑仅能在二进制模式下进行,这就需要用户对数据对象的格式非常了解。对于那些需要手工修改注册表的用户来说,理解每一种数据类型以及每一种类型数据的存储格式是非常重要的。
现有注册表数据类型
类 型 类型索引 大 小 说 明
REG_BINARY 3 0~多个字节 可以包含任何数据的二进制对象颜色描述
REG_COLOR_RGB * 4字节 颜色描述
REG_DWORD 4 4字节 DWORD值
REG_DWORD_BIG_ENDIAN 5 4字节 一个DWORD值的逆序存储形式
REG_DWORD_LITTLE_ENDIAN 4 4字节 DWORD值
REG_EXPAND_SZ 2 0~多个字节 包含环境变量占位符的字符串
REG_FILE_NAME * 0~多个字节 文件名
REG_FILE_TIME * 未知 文件时间
REG_FULL_RESOURCE_DESCRIPTOR 9 未知 硬件资源列表
REG_LINK 6 0~多个字节 命名一个符号链接(symbolic link)的Unicode串
REG_MULTI_SZ 7 0~多个字节 以null字符分隔的字符串集合,集合中的最后一个字符串以两个null字符结尾
REG_NONE 0 未知 REG_NONE类型的对象无须分类,它与REG_UNKNOWN类型不同
REG_RESOURCE_LIST 8 未知 设备使用的资源列表
REG_RESOURCE_REQUIREMENTS_LIST 10 未知 驱动程序要求的资源列表
REG_SZ 1 0~多个字节 以一个null字符线的字符串
REG_UNKNOWN (未定义) 未知 因为数据类型索引无效而无法确定的对象类型
注册表根键HKEY_LOCAL_MACHIN
HKEY_LOCAL_MACHIN根键中存放的是用来控制系统和软件的设置。由于这些设置是针对那些使用Windows系统的用户而设置的,所以它与具体用户无关,它是一个公共配置信息,大家只须作一个了解就可以了。
HKEY_LOCAL_MACHINE包括了如下五个子键:
HARDWARE子键:
该子键下面存放一些有关超文本终端、数学协处理器和串口等信息。HARDWARE子键下面包括两个子键DEVICEMAP(用于存放设备映象)、DESCRIPTION(存放有关系统信息)。DEVICEMAP子键的层次结构如下:
HKEY_LOCAL_MACHINE\HARDWARE
HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP
HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM
在HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM分支下面包括如下设置内容:
*COM1=COM1:指定COM1端口。
*COM2=COM2:指定COM2端口。
DESCRIPTION子键的层次结构如下:
HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION
HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System
HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\FloatingPointProcessor
HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\FloatingPointProcessor\0
*SAM子键:系统自动将其保护起来。
*SECURITY子键:包含了安全设置的信息,同样也让系统保护起来。
*SOFTWARE子键:包含了系统软件、当前安装的应用软件及用户的有关信息。
*SYSTEM子键:
该子键存放的是启动时所使用的信息和修复系统时所需的信息,其中包括各个驱动程序的描述信息和配置信息等。System子键下面只有一个 CurrentControlSet子键,系统在这个子键下保存了当前的驱动程序控制集的信息。这里介绍CurrentControlSet子键下面的 Control和Services子键。
Control子键
这个子键中保存的是由控制面板中各个图标程序设置的信息。由于控制面板中的各个图标程序可能会把信息写在不同的子键下,所以用户最好不要通过注册表编辑器来修改这些信息,否则容易引起系统死机。
(1) fontassoc子键
该子键存放的是有关字体设置信息(如缺省字体、替代字体以及字符集等)。在
HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\ fontassoc分支下还有两个子键Associated DefaultFonts、Associated CharSet。
Associated DefaultFonts子键
在HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\
fontassoc\Associated DefaultFonts分支下有如下设置信息:
*AssocSystemFont=simsun.ttf:定义系统字体。simsun.ttf为TrueType宋体字库文件。
*FontPackageDontCare=宋体:以下行设置了已安装的套装字体(FontPackage),在
Win3.x中,这些设置在Wifeman.ini文件的[FontPackages]小节中列出。
*FontPackageRoman=宋体
*FontPackageSwiss=宋体
*FontPackageModern=宋体
*FontPackageScript=宋体
*FontPackageDecorative=宋体 Associated CharSet子键 在
HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\ fontassoc\Associated
CharSet分支下是关于一些系统字体的设置。
(2) Nls子键
该子键位于HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\ Nls分支中,它是用来设置Windows的语言特性,如代码页、EUDC内码范围、语言分类等。
(3) SessionManager子键
该子键用于管理系统的会话,它包括三个主键和八个子键。
KnownDLLs子键
该子键下包含了Windows中32位Dll文件以及标识。
CheckBadApps子键
该子键用于检查有问题的16位应用程序,这些应用程序在Windows中运行会出现莫名其妙的问题,甚至引起系统的崩溃。该子键下面有许多应用程序的可执行文件的子键,如PPower.exe是MS DOS 6.x一个用于便携机电源管理的程序,它在注册表中的分支是 HKEY_LOCAL_MACHINE\System\ CurrentControlSet\control\SessionManager\CheckBadApps \ POWER.EXE。
通常这个分支下有几个子键!
CheckBadApps400子键
该子键用于检查有问题的32位应用程序,它在注册表的分支是
HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\
SessionManager\CheckBadApps400。
该分支下面有许多应用程序的子键,这些子键有这些应用程序的相应运行设置,例如,
UltraEdit32是一个32位的多功能编辑器,其可执行文件为Ui32.exe,它在注册表的分支是HKEY_LOCAL_MACHINE\ System\ CurrentControlSet\control\SessionManager\CheckBadApps400
\ UE32.EXE。在该分支下面有Ui32.exe的运行设置(包括可执行文件Ui32.exe本身的检查标志、版本检查标志以及其标志位等)。
AppPatches子键
该子键用于应用程序的补丁,使这些应用程序能够很好地运行在Windows中。在
Windows 3.x时
代,这些补丁是放在Win.ini文件中。该子键位于注册表的HKEY_LOCAL_MACHINE\System
\CurrentControlSet\ control\SessionManager\AppPatches分支上。在该分支下面有许多应用程序的子键及其设置内容。例如,在该分支下有一个Setup的应用程序,其位置是
HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\
SessionManager\AppPatches\SETUP。
(4) MediaResources子键
该子键用于设置多媒体资源,其位置在HKEY_LOCAL_MACHINE\System\
CurrentControlSet\control\MediaResources分支上。该分支下还包括DirectSound、
Joystick、MIDINonGeneralMIDIDriverList子键及其设置。
(5)MediaProperties子键
该子键位于HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\ Media-
Properties
分支上,用于设置多媒体的属性。
(6)FileSystem子键
该子键位于HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\ FileSystem
分支上,主要对Windows的NTFS及Win31、Win9.x文件系统进行设置。
(7) Shutdown子键
该子键位于HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\ Shutdown分支上,用于对Windows关机时的设置,一般里面有一个快速关机的设置。
(8)keyboard layouts子键
该子键位于HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\ keyboard layouts
分支上,主要对Windows的键盘布局(Keyboard Layouts)或者键盘语言进行设置。该子键下面包括多个关于键盘语言(也包括汉字输入法)的子键,这些子键使用数值表示出来。
(9) Update子键
该子键位于HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\ Update分支上,用于确定“控制面板”窗口是否被刷新,此子键的功能与“控制面板”窗口中的“查看”菜单中的“刷新”相同。
(10) TimeZoneInformation子键
该子键位于HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\
TimeZoneInformation分支上,用于设置时区信息。
(11) Print子键
该子键位于HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\ Print分支上,用于设置打印机。
(12)IDConfigDB子键
该子键位于HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\ IDConfigDB
分支上,用于显示硬件配置文件的配置数据、配置名称等其他信息。
(13)ComputerName子键
该子键下面具有如下分层结构:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\
ComputerName\ActiveComputerName
HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\ ComputerName\ComputerName
该分层结构用于设置计算机名称。
(14)SecurityProviders子键
该子键位于HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\
SecurityProviders分支上,用于设置网络供应商的安全功能。
Services子键
该子键位于HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services分支上。该子键中存放了 Windows中各项服务的信息,有些是自带的,有些是随后安装的。在该子键下面的每个子键中存放相应服务的配置和描述信息。
(1) Class子键
该子键位于HKEY_LOCAL_MACHINE\System\CurrentControlSet\ Services\Class分支上。该子键中保存的是Windows支持的不同种类硬件的信息,它下面的子键与“控制面板”中添加新硬件的分类类似。 下面简单介绍几种硬件分类子键。
① 1394子键
该子键位于HKEY_LOCAL_MACHINE\System\CurrentControlSet\ Services \Class1394,用于配置满足IEEE 1394
的“1394总线控制器”。 * @=1394 总线控制器:指定1394子键的描述名称。
* Icon=-21:指定图标标识。
* Link={6BDD1FC1-810F-11D0-BEC7-08002BE2092F:指定“1394总线控制器”的连接。该连接将在{6BDD1FC1-810F-11D0-BEC7-08002BE2092F子键中定义。
② {6BDD1FC1-810F-11D0-BEC7-08002BE2092F}子键
该子键位于HKEY_LOCAL_MACHINE\System\CurrentControlSet\ Services\Class\ {6BDD1FC1-810F-11D0-BEC7-08002BE2092F}分支上,用于配置“1394总线控制器”的连接。
*Link=1394:指定连接为“1394”。
*Class=1394:指定“1394总线控制器”类为“1394”。
③Adapter子键
该子键位于HKEY_LOCAL_MACHINE\System\CurrentControlSet\ Services\Class\Adapter
分支上,用于配置“CD-ROM 控制器”。
*@=CD-ROM 控制器:指定该子键的描述名称。
*Icon=-9:指定图标标识。
*Link={4d36e964-e325-11ce-bfc1-08002be10318}:指定“CD-ROM 控制器”的连接,由{4d36e964-e325-11ce-bfc1-08002be10318}子键进一步地定义。
④{4d36e964-e325-11ce-bfc1-08002be10318}子键
该子键位于HKEY_LOCAL_MACHINE\System\CurrentControlSet\ Services\Class\ {4d36e964-e325-11ce-bfc1-08002be10318}分支上,用于配置“CD-ROM 控制器”的连接。
*Link=Adapter:指定连接为“Adapter”。
*Class=Adapter:指定类为“Adapter”。
⑤Printer子键
该子键位于HKEY_LOCAL_MACHINE\System\CurrentControlSet\
Services\Class\Printer分支上,用于配置“打印机”。
*@=打印机:指定该子键的描述名称。
*Installer=MSPRINT.DLL:指定“打印机”的安装程序为“MSPRINT.DLL”。
*Icon=-4:指定图标标识。
*NoDisplayClass=1:确定是否显示类。若为1,则不显示类。若为0,则显示类。
*Link={4d36e979-e325-11ce-bfc1-08002be10318}:指定“打印机”的连接。
⑥ MEDIA子键
该子键位于HKEY_LOCAL_MACHINE\System\CurrentControlSet\ Services\Class
\MEDIA分支上,用于配置多媒体设备,包括声音卡、视频卡和游戏控制器等。
*@=声音、视频和游戏控制器:指定该子键的描述。
*Link={4d36e96c-e325-11ce-bfc1-08002be10318:指定“多媒体”的连接,
参见{4d36e96c-e325-11ce-bfc1-08002be10318}子键。
*Icon=0:指定图标标识。
*Installer=mmci.dll:指定“多媒体”设备的安装程序为“MMCI.DLL”。
(2) VxD子键
该子键位于HKEY_LOCAL_MACHINE\System\CurrentControlSet\ Services\VxD分支上。该子键保存了Windows中所有虚拟设备驱动程序的信息。由于Windows系统能够自动管理这些信息,因此,在通常情况下最好不要通过注册表编辑器来修改这些信息,但是了解此子键下的信息是有好处的,因为有一些功能(如拨号网络提速)必须修改此子键下的信息。
① Winsock子键
该子键位于HKEY_LOCAL_MACHINE\System\CurrentControlSet\
Services\VxD\Winsock分支上,用于设置WinSock。 *IrSockets=wsirda.vxd:指定
Winsock的虚拟驱动程序为wsirda.vxd。
② VNETSUP子键
该子键位于HKEY_LOCAL_MACHINE\System\CurrentControlSet\
Services\VxD\VNETSUP分支上,用于设置网络的标识以及初始化数值。
*ComputerName=caogjwj:计算机名称。
*Workgroup=cgj:工作组名字。
*Comment=CAO GUO JUN:计算机描述。
*StaticVxD=vnetsup.vxd:静态虚拟设备驱动程序为vnetsup.vxd。
*Start=hex:00:设置初始化数值。
*NetClean=hex:01:确定是否清理网络。若为01,则清理网络。若为00,则不清理网络。
*MaintainServerList=2:设置浏览主控服务器的属性值。
*LMAnnounce=0:设置LM广播(LMAnnounce)属性值。
为了进一步地配置网络服务,在Ndi子键下面将有如下子键结构:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\ VNETSUP\Ndi
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\ VNETSUP\Ndi\params
params子键用于进一步地设置浏览主控服务器、LM广播的属性值。
a.MaintainServerList子键
该子键位于HKEY_LOCAL_MACHINE\System\CurrentControlSet\ Services\VxD
\VNETSUP\Ndi\params\MaintainServerList分支上,用于设置浏览主控服务器的属性值。在Windows中,浏览服务是由一个浏览主控服务器和一个浏览备份服务器来管理浏览列表。您可以使用net view命令来获得浏览主控服务器的机器列表。
*default=2:缺省属性值为2。
*ParamDesc=浏览主控服务器:属性描述。
*type=enum:属性值类型为枚举型。
*@=2:缺省值为2。
以上枚举型由enum子键定义。enum位于
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VNETSUP\Ndiparams\MaintainServerList\enum分支上。
*2=自动:使用“自动”选项,则系统将允许该终端变成一个合格的浏览主控服务器。
*1=启用:使用“启用”选项,则系统将允许该工作站将成为浏览主控服务器。
*0=禁用:使用“禁用”选项,则系统将使此机器不可能成为浏览主控服务器。
b.LMAnnounce子键
该子键位于HKEY_LOCAL_MACHINE\System\CurrentControlSet\
Services\VxD\VNETSUP\Ndi\params\LMAnnounce分支上,用于设置LM广播的属性值。LM广播设置用于LAN Manager网络
环境,它要求每个工作站必须向网络上的其他工作站广播自己的存在。
*default=0:缺省属性值为0。
*ParamDesc=LM 广播:属性描述。
*type=enum:属性类型为枚举型。
*@=0:缺省值为0。
枚举型是由enum子键定义的。enum位于HKEY_LOCAL_MACHINE\System\
CurrentControlSet\Services\VxD\VNETSUP\Ndi\params\LMAnnounce\ enum分支上。
*1=是:使用“是”选项,则LAN Manager就会开始广播,这会增加用户的网络冲突。
*0=否:如果在用户的网络环境中不需要LM广播性能,则选择“否”选项。
③ NDIS子键
该子键位于HKEY_LOCAL_MACHINE\System\CurrentControlSet\ Services\VxD\NDIS分支上,用于设置NIDS。
*Start=hex:00:初始化值为00。
*NetClean=hex:01:确定是否清理网络。
*StaticVxD=ndis.vxd,ndis2sup.vxd:静态虚拟设备驱动程序为ndis.vxd、ndis2sup.
vxd。*DeviceVxDs=ndiswmi.sys:NIDS的设备驱动程序为ndiswmi.sys。
④ JAVASUP子键
该子键位于HKEY_LOCAL_MACHINE\System\CurrentControlSet\
Services\VxD\JAVASUP分支上,用于设置JAVASUP(Java服务)。
*Start=hex:00:初始化值为00。
*StaticVxD=JAVASUP.VXD:静态虚拟设备驱动程序为JAVASUP.VXD。
⑤ CONFIGMG子键
该子键位于HKEY_LOCAL_MACHINE\System\CurrentControlSet\
Services\VxD\CONFIGMG分支上,用于所有系统设备的管理。
*StaticVxD=*CONFIGMG:静态虚拟设备驱动程序为*CONFIGMG。
*Start=hex:00:初始化值为00。
*SysDM=SYSDM.CPL:由SYSDM.CPL启动系统设备管理器。
*SysDMFunc=DMSetupDevnode:由DMSetupDevnode启动系统设备管理器功能。
*Detect=SYSDM.CPL:由SYSDM.CPL自动检测系统设备。
*DetectFunc=DMRedetect:由DMRedetect启动自动检测功能。
*Private=SYSDM.CPL:由SYSDM.CPL启动私有设备管理器。
*PrivateFunc=DMPrivateProblem:由DMPrivateProblem启动私有设备管理器功能。
*RemoveRomOkay=SYSDM.CPL:由SYSDM.CPL确定ROM中内容删除是否成功。
*RemoveRomOkayFunc=DMRemoveRomOkay:由DMRemoveRomOkay启动ROM删除功能。
*AskForConfig=SYSDM.CPL:使用SYSDM.CPL查询系统设备的设置。*AskForConfigFunc=
DMAskForConfig:由DMAskForConfig启动系统设备的查询功能。
*AskForUndock=SYSDM.CPL:使用SYSDM.CPL查询设备出坞情况。
*AskForUndockFunc=DMAskForUndock:由DMAskForUndock启动设备出坞查询功能。
在CONIFGMG子键下面还有两个子键,用于设置系统总线。
a.SpannableBus子键
该子键位于HKEY_LOCAL_MACHINE\System\CurrentControlSet\
Services\VxD\CONFIGMG\SpannableBus分支上,用于设置可扩展的总线(Spannable Bus)的个数。
*PCI=hex:00:设置可扩展的PCI总线个数。
*ISAPNP=hex:00:设置可扩展的即插即用ISA总线的个数。
b.PnPBus子键
该子键位于HKEY_LOCAL_MACHINE\System\CurrentControlSet\
Services\VxD\CONFIGMG
\PnPBus分支上,用于设置即插即用总线(PnP Bus)的个数。
*PCI=hex:00:设置PCI总线的个数。
*BIOS=hex:00:设置BIOS总线的个数。
*EISA=hex:00:设置EISA总线的个数。
*USB=hex:00:设置USB总线的个数。
*HID=hex:00:设置HID总线的个数。
*1394=hex:00:设置1394总线的个数。
*ISAPNP=hex:00:设置ISAPNP总线的个数。
*MF=hex:00:设置MF总线的个数。
*ACPI=hex:00:设置ACPI总线的个数。
⑥ NTKern子键
该子键位于HKEY_LOCAL_MACHINE\System\CurrentControlSet\
Services\VxD\NTKern分支上,用于设置NTKern。
*StaticVxD=*NTKERN:静态虚拟驱动程序为*NTKERN。
*Start=hex:00:设置初始化数值。
(3) WinSock子键
该子键位于HKEY_LOCAL_MACHINE\System\CurrentControlSet\ Services\Winsock分支上,存放的是当系统连接Internet时使用的WinSock的信息。 在该子键下面有如下两个子键:
① Autodial子键
该子键位于HKEY_LOCAL_MACHINE\System\CurrentControlSet\
Services\Winsock\Autodial分支上,用于设置Autodial(自动拨号)。
*AutodialDllName32=wininet.dll:启动自动拨号功能的32位DLL驱动程序为wininet.
dll
*AutodialFcnName32=InternetAutodialCallback:设置自动拨号的回调功能。
② Parameters子键
该子键位于HKEY_LOCAL_MACHINE\System\CurrentControlSet\
Services\Winsock\Parameters分支上,用于设置WinSock参数。
* MSTCP=:使用HKEY_LOCAL_MACHINE\System\CurrentControlSet\
Services\VxD\MSTCP\Parameters\Winsock分支中的参数设置WinSock。
(4) WDMFS子键
该子键位于HKEY_LOCAL_MACHINE\System\CurrentControlSet\ Services\WDMFS分支上,用于设置WDMFS(WDM文件系统)。
*ImagePath=\\SystemRoot\\System32\\Drivers\\wdmfs.sys:WDMFS驱动程序为wdmfs.sys。
*ErrorControl=hex:01,00,00,00:设置错误控制码。
*Start=hex:00:设置初始化数值。
*Type=hex:01,00,00,00:设置WDMFS的类型。
*DisplayName=WDM Windows File System Mapper:显示WDMFS的名称。
(5) UPDATE子键
该子键位于HKEY_LOCAL_MACHINE\System\CurrentControlSet\ Services\UPDATE分支上,用于设置UPDATE(更新服务)。
*ImagePath=\\SystemRoot\\System32\\Drivers\\update.sys:UPDATE服务的驱动程序为update.sys。
*ErrorControl=hex:01,00,00,00:设置错误控制码。
*Start=hex:00:设置初始化数值。
*Type=hex:01,00,00,00:设置UPDATE服务的类型。
*DisplayName=Intel Update Driver:UPDATE服务的显示名称。
(6) RemoteAccess子键
该子键位于HKEY_LOCAL_MACHINE\System\CurrentControlSet\ ServicesRemoteAccess分支上,存放的是和Windows拨号网络有关的信息。
*Version=1.2c:版本号。
*Remote Connection=hex:00,00,00,00:设置远程连接。 在该子键下面有如下两个子键:
① Authentication子键
该子键位于HKEY_LOCAL_MACHINE\System\CurrentControlSet\ Services
\RemoteAccess\Authentication分支上,用于设置拨号网络的验证信息(如服务器类型、协议等)。
② NetworkProvider子键
该子键位于HKEY_LOCAL_MACHINE\System\CurrentControlSet\ Services RemoteAccess\NetworkProvider分支上,用于设置拨号网络的驱动程序。
(7) MSNP32子键
该子键具有如下子键结构:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MSNP32
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MSNP32
\NetworkProvider NetworkProvider子键用于保存Microsoft网络用户的验证信息。
*GroupFcn=GROUPPOL.DLL,NTGetUserGroups:由GROUPPOL.DLL、NTGetUserGroups设置组功能。
*AuthenticatingAgent=:设置验证代理。若为空,则使用缺省的验证代理。
*LogonDisconnected=hex:00,00,00,00:设置登录断开标志。
*Name=Microsoft Network:设置名称。
*ProviderPath=msnp32.dll:“Microsoft网络用户”的驱动程序为msnp32.dll。
*Description=Microsoft Network:设置“Microsoft网络用户”的描述。
*NetID=hex:00,00,01,00:网络标识号。
*CallOrder=hex:00,00,00,40:设置调用顺序。
(8) NWNP32子键
该子键下面具有如下子键结构:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NWNP32
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NWNP32
\NetworkProvider NetworkProvider子键中存放的是Microsoft网络用户针对Netware网络时的验证信息。
*GroupFcn=GROUPPOL.DLL,NWGetUserGroups:由GROUPPOL.DLL、NWGetUserGroups设置组功能。
(9) Arbitrators子键
该子键位于HKEY_LOCAL_MACHINE\System\CurrentControlSet\
Services\Arbitrators
分支上。该子键中保存的信息是用来解决不同的设备间资源冲突的问题,它的四个子键中分别保存了内存区域、DMA、I/O端口和中断的信息。
① IRQArb子键
该子键位于HKEY_LOCAL_MACHINE\System\CurrentControlSet\
Services\Arbitrators
\IRQArb分支上,主要用于保存保留的中断信息。
② DMAArb子键
该子键位于HKEY_LOCAL_MACHINE\System\CurrentControlSet\
Services\Arbitrators
\DMAArb分支上,主要用于保存保留的DMA信息。
③ AddrArb子键
该子键位于HKEY_LOCAL_MACHINE\System\CurrentControlSet\
Services\Arbitrators
\AddrArb分支上,用于保存保留的内存区域列表。
④ IOArb子键
该子键位于HKEY_LOCAL_MACHINE\System\CurrentControlSet\
Services\Arbitrators
\IOArb分支上,用于保存保留的I/O端口列表。
(10) WinSock2子键
该子键位于HKEY_LOCAL_MACHINE\System\CurrentControlSet\ Services\WinSock2
分支上,用于存放与Internet连接时WinSock 2.0版本的有关信息。
① Parameters子键
该子键位于HKEY_LOCAL_MACHINE\System\CurrentControlSet\ Services\WinSock2
\Parameters分支上,用于存放WinSock 2.0版的有关参数,如注册版