Debugging Tools for Windows

!dreg

!dreg扩展命令显示注册表信息。

语法

!dreg [-d|-wKeyPath[!Value
!dreg 

参数

-d
二进制数据显示为DWORD。
-w
二进制数据显示为WORD。
KeyPath
指定注册表路径。可以使用下面这些缩写:
hklm
HKEY_LOCAL_MACHINE
hkcu
HKEY_CURRENT_USER
hkcr
HKEY_CLASSES_ROOT
hku
HKEY_USERS

如果没有使用缩写,则假定使用HKEY_LOCAL_MACHINE。

Value
指定要显示的注册表值。星号(*)可以代表任何值。如果省略Value,则显示所有子键。

DLL

Windows 2000 Ntsdexts.dll
Windows XP和之后 Ntsdexts.dll

注释

!dreg扩展用于在用户模式调试时显示注册表。

在远程调试时由于可以查看远程机器的注册表,所以非常有用。从内核调试器控制用户模式调试器时也很有用,因为目标机冻结的时候是不能运行标准的注册表编辑器的。(这时也可以使用.sleep命令。查看从内核调试器控制用户模式调试器获得详细信息。)

由于信息是按照容易阅读的格式显示的,所以本地调试时也有用。

如果在内核模式调试时使用!dreg结果显示的是主控机上面的,而不是目标机上的。要显示目标机上的原始注册表信息,可以使用!reg扩展命令来替代。

这里有一些示例。下面这个显示指定的注册表键下面所有子键:

!dreg hkcu\Software\Microsoft

下面显示指定的注册表键下面所有值:

!dreg System\CurrentControlSet\Services\Tcpip!*

这条命令显示指定的注册表键下面的Start键值:

!dreg System\CurrentControlSet\Services\Tcpip!Start

不带参数使用!dreg会在调试器命令窗口中显示该命令的简单帮助。

附加信息

关于注册表的信息,查看Windows Driver Kit (WDK) 文档,以及Mark Russinovich 和David Solomon 编写的Microsoft Windows Internals

Build machine: CAPEBUILD