!ptov

!ptov 扩展显示给定进程的整个物理到虚拟映射。

!ptov DirBase

参数

DirBase
指定进程的目录基。 若要确定目录基,请使用 !process 命令,并查看为 DirBase 显示的值。

DLL

Kdexts.dll

注解

以下是一个示例。 首先,使用 .process!process 确定当前进程的目录基:

1: kd> .process
Implicit process is now 852b4040
1: kd> !process 852b4040 1
PROCESS 852b4040  SessionId: none  Cid: 0004    Peb: 00000000  ParentCid: 0000
    DirBase: 00185000  ObjectTable: 83203000  HandleCount: 663.
    Image: System
    ...

在这种情况下,目录基为 0x00185000。 将此地址传递给 !ptov

1: kd> !ptov 185000
X86PtoV: pagedir 185000, PAE enabled.
15e11000 10000
549e6000 20000
...
60a000 210000
40b000 211000
...
54ad3000 25f000
548d3000 260000
...
d71000 77510000
...

左侧列中的数字是具有此进程映射的每个内存页的物理地址。 右侧列中的数字是映射到的虚拟地址。

整个显示很长。

下面是一个 64 位示例。

3: kd> .process
Implicit process is now fffffa80`0361eb30
3: kd> !process fffffa80`0361eb30 1
PROCESS fffffa800361eb30
    SessionId: none  Cid: 0004    Peb: 00000000  ParentCid: 0000
    DirBase: 00187000  ObjectTable: fffff8a000002870  HandleCount: 919.
    Image: System
    ...
3: kd> !ptov 187000
Amd64PtoV: pagedir 187000
00000001`034fb000 1d0000
a757c000 1d1000
00000001`0103d000 1d2000
c041e000 1d3000
...
2ed6f000 fffff680`00001000
00000001`13939000 fffff680`00003000
ceefb000 fffff680`00008000
...

目录基是虚拟地址转换中使用的第一个表的物理地址。 此表具有不同的名称,具体取决于目标操作系统的位数以及是否为目标操作系统启用了物理地址扩展(PAE)。

对于 64 位 Windows,目录基是页面映射级别 4(PML4)表的物理地址。 对于启用了 PAE 的 32 位 Windows,目录基是页面目录指针(PDP)表的物理地址。 对于禁用 PAE 的 32 位 Windows,目录基是页面目录(PD)表的物理地址。

有关相关主题,请参阅 !vtop将虚拟地址转换为物理地址。 有关虚拟地址转换的信息,请参阅 Microsoft Windows 内部资料(作者:Mark Russinovich 和 David Solomon)。