!pte

!pte 扩展显示指定地址的页表条目(PTE)和页目录条目(PDE)。

语法

!pte VirtualAddress 
!pte PTE 
!pte LiteralAddress 1 

参数

VirtualAddress
指定需要其页表的虚拟地址。

PTE
指定实际 PTE 的地址。

LiteralAddress **** 1
指定实际 PTE 或 PDE 的地址。

DLL

Kdexts.dll

其他信息

有关页表、页目录和状态位的说明的信息,请参阅 Mark Russinovich 和 David Solomon 编写的 Microsoft Windows 内部资料

注解

如果提供了一个参数,并且此参数是存储页表的内存区域中的地址,则调试器会将此参数视为 PTE 参数。 此参数被视为所需 PTE 的实际地址,调试器将显示此 PTE 和相应的 PDE。

如果提供了一个参数,并且此参数不是此区域中的地址,调试器会将此参数视为 VirtualAddress 参数。 将显示保存此地址映射的 PTE 和 PDE。

如果提供了两个参数,第二个参数为 1(或任何其他小数),则调试器会将第一个参数视为 LiteralAddress。 此地址被解释为 PTE 的实际地址,也解释为 PDE 的实际地址,并且将显示相应的(可能无效)数据。

(仅限 x86 或 x64 目标计算机)如果提供了两个参数,并且第二个参数大于第一个参数,则调试器会将这两个参数视为 StartAddressEndAddress。 然后,该命令显示指定内存范围内每个页面的 PTE。

有关所有系统 PTE 的列表,请使用 !sysptes 扩展。

下面是 x86 目标计算机的示例:

kd> !pte 801544f4
801544F4  - PDE at C0300800        PTE at C0200550
          contains 0003B163      contains 00154121
        pfn 3b G-DA--KWV    pfn 154 G--A--KRV

此示例的第一行将重述正在调查的虚拟地址。 然后,它提供 PDE 和 PTE 的虚拟地址,其中包含有关此地址的虚拟物理映射的信息。

第二行提供 PDE 和 PTE 的实际内容。

第三行采用这些内容并对其进行分析,将它们分解为页帧编号(PFN)和状态位。

有关如何解释和使用 PFN 的信息,请参阅 !pfn 扩展或将虚拟地址转换为物理地址部分。

在 x86 或 x64 目标计算机上,PDE 和 PTE 的状态位显示在下表中。 !pte 显示用大写字母或短划线指示这些位,并添加其他信息。

设置时显示 清除时显示 含义

0x200

C

-

写入时复制。

0x100

G

-

全局。

0x80

L

-

较大页面。 这种情况只发生在 PDE 中,从未发生在 PTE 中。

0x40

D

-

脏。

0x20

A

-

已访问。

0x10

N

-

禁用缓存。

0x8

T

-

直写。

0x4

U

K

所有者(用户模式或内核模式)。

0x2

周三

R

可写或只读。 仅适用于多处理器计算机和任何运行 Windows Vista 或更高版本的计算机。

0x1

V

有效。

E

-

可执行页面。 对于不支持硬件执行/不可执行的位(包括许多 x86 系统)的平台,始终显示 E。