!pte
The !pte extension displays the page table entry (PTE) and page directory entry (PDE) for the specified address.
Syntax
!pte VirtualAddress
!pte PTE
!pte LiteralAddress 1
Parameters
VirtualAddress
Specifies the virtual address whose page table is desired.
PTE
Specifies the address of an actual PTE.
LiteralAddress **** 1
Specifies the address of an actual PTE or PDE.
DLL
Kdexts.dll
Additional Information
For information about page tables, page directories, and an explanation of the status bits, see Microsoft Windows Internals, by Mark Russinovich and David Solomon.
Remarks
If one parameter is supplied and this parameter is an address in the region of memory where the page tables are stored, the debugger treats this as the PTE parameter. This parameter is taken as the actual address of the desired PTE, and the debugger will display this PTE and the corresponding PDE.
If one parameter is supplied and this parameter is not an address in this region, the debugger treats this as the VirtualAddress parameter. The PTE and PDE that hold the mapping for this address are displayed.
If two parameters are supplied and the second parameter is 1 (or any other small number), the debugger treats the first parameter as LiteralAddress. This address is interpreted as the actual address of a PTE and also as the actual address of a PDE, and the corresponding (and possibly invalid) data will be shown.
(x86 or x64 target computer only) If two parameters are supplied and the second parameter is greater than the first, the debugger treats the two parameters as StartAddress and EndAddress. The command then displays the PTEs for each page in the specified memory range.
For a list of all system PTEs, use the !sysptes extension.
Here is an example from an x86 target computer:
kd> !pte 801544f4
801544F4 - PDE at C0300800 PTE at C0200550
contains 0003B163 contains 00154121
pfn 3b G-DA--KWV pfn 154 G--A--KRV
The first line of this example restates the virtual address being investigated. It then gives the virtual address of the PDE and the PTE, which contain information about the virtual-physical mapping of this address.
The second line gives the actual contents of the PDE and the PTE.
The third line takes these contents and analyzes them, breaking them into the page frame number (PFN) and the status bits.
See the !pfn extension or the Converting Virtual Addresses to Physical Addresses section for information about how to interpret and use the PFN.
On an x86 or x64 target computer, the status bits for the PDE and the PTE are shown in the following table. The !pte display indicates these bits with capital letters or dashes, and adds additional information as well.
Bit | Display when set | Display when clear | Meaning |
---|---|---|---|
0x200 |
C |
- |
Copy on write. |
0x100 |
G |
- |
Global. |
0x80 |
L |
- |
Large page. This only occurs in PDEs, never in PTEs. |
0x40 |
D |
- |
Dirty. |
0x20 |
A |
- |
Accessed. |
0x10 |
N |
- |
Cache disabled. |
0x8 |
T |
- |
Write-through. |
0x4 |
U |
K |
Owner (user mode or kernel mode). |
0x2 |
W |
R |
Writeable or read-only. Only on multiprocessor computers and any computer running Windows Vista or later. |
0x1 |
V |
Valid. |
|
E |
- |
Executable page. For platforms that do not support a hardware execute/noexecute bit, including many x86 systems, the E is always displayed. |