4,2 Segmentation and Paging under Windows
know where these structures reside from the perspective of the program's
linear address space.
contains 1BE02867 contains 00ACF847
The third line specifies the contents of the PDE and PTE in hex format. PDEs
and PTEs arc just binary structures that are 4 bytes in length (assuming a 32-
bit physical address space where PAE has not been enabled).
pfn lbe02 ---DA--UWEV pfn acf ---D---UWEV
The fourth line decomposes these hexadecimal values into their constituent
parts: a physical base address and a status flag. Note that the base physical
addresses stored in the PDE and PTE are displayed in the 20-bit page frame
format, where least-significant 12 bits are not shown and assumed to be zero
Table 4.3 describes what these flag codes signify.
Table 4.3 PDE/PTE Flags
Bit
Bit Set
Bit Clear
Meaning
0
V
—
Page/page table is valid (present in memory)
1
W
R
Page/page table writable (as opposed to being read-only)
2
u
K
Owner is user/kernel
3
T
—
Write-through caching is enabled for this page/page table
4
N
—
Page/page table caching is disabled
5
A
—
Page/page table has been accessed (read from, written to)
6
D
—
Page is dirty (has been written to)
7
L
—
Page is larger than 4 KB
8
G
—
Indicates a global page (related to TLBs')
9
C
—
Copy on write has been enabled
E
—
The page being referenced contains executable code
'TLBs =
= translation look-alike buffers
As a useful exercise, let's take an arbitrary set of linear addresses, ranging
from 0x00000000 to OxFFFFFFFF, and run the Ipte command on them to see
what conclusions we can make from investigating the contents of their PDEs
and PTEs.
Parti I 125