示列 4-17. 地址范围是: 0x80000000 --- 0x9FFFFFFF 的 PDE
Windows 2000 的内存布局
本章的最后一部分将给出在一个 Windows 2000 进程“看”来, 4GB 线性地址空间的总体布局是什么样子 。表 4-9 给出了多个基本数据结构的内存范围 。它们之间的“大洞( big hole )” 有不同的用途,如,用于进程模块和设备驱动程序的加载区域,内存池,工作集链表等等 。注意,有些内存地址和内存块的大小在不同的系统之间有很大的差异,这 取决于物理内存和硬件的配置情况、进程的属性以及其他一些系统变量 。因此,这里给出的仅仅是一个草图而已,并不是精确的布局图 。
有些物理内存块在线性地址空间中出现的两次或更多次 。例如, SharedUserData 区域位于线性地址 0xFFDF0000 ,并且并镜像到 0x7FFE0000。这两个地址都指向物理内存中的同一个页,这意味着,如果向 0xFFDF0000 n 处写入一个字节,那么 0x7FFE0000 n 处的值也会随之改变 。这是一个虚拟内存的世界 ---- 一个物理地址可以被映射到线性地址空间中的任何地方,即使一个物理地址在同一时间映射到多个线性地址也是可以的 。回忆一下 图 4-3 和 图 4-4 ,它们清楚地展示了线性地址的这种“虚假行为” 。它们的目录和表位域正确的指向用来确定数据实际位置的结构体 。如果两个 PTE 的 PFN 恰好是相同的,那么它们对应的线性地址将指向物理内存相同位置 。
表 4-9. 进程地址空间中的可确认的内存区域
起始地址
结束地址
十六进制大小
类型 / 描述
0x00000000
0x0000FFFF
10000
底部的受保护块( Lower guard block )
0x00010000
0x0001FFFF
10000
WCHAR[]/ 环境字符串,在一个 4KB 页中分配
0x00020000
0x0002FFFF
10000
PROCESS_PARAMETERS/ 在一个 4KB 页中分配
0x00030000
0x0012FFFF
1000000
DWORD[4000]/ 进程堆栈(默认; 1MB )
0x7FFDD000
0x7FFDDFFF
1000
TEB/1# 线程的线程环境块
0x7FFDE000
0x7FFDEFFF
1000
TEB/2# 线程的线程环境块
0x7FFDF000
0x7FFDFFFF
1000
PEB/ 进程环境块
0x7FFE0000
0x7FFE02D7
2D8
KUSER_SHARED_DATA/ 用户模式下的 SharedUserData
0x7FFF0000
0x7FFFFFFF
10000
顶部的受保护块( Upper guard block )
0x80000000
0x800003FF
400
IVT/ 中断向量表
0x80036000
0x800363FF
400
KGDTENTRY[80]/ 全局描述符表
0x80036400
0x80036BFF
800
KIDTENTRY[100]/ 中断描述符表
0x800C0000
0x800FFFFF
40000
VGA/ROM BIOS
0x80244000
0x802460AA
20AB
KTSS/ 内核任务状态段(繁忙)
0x8046AB80
0x8046ABBF
40
KeServiceDescriptorTable
0x8046AB
0x8046ABFF
40
KeServiceDescriptorTableShadow
0x80470040
0x804700A7
68
KTSS/KiDoubleFaultTSS
0x804700A8
0x8047010F
68
KTSS/KiNMITSS
0x804704D8
0x804708B7
3E0
PROC[F8]/KiServiceTable
0x804708B8
0x804708BB
4
DWORD/KiServiceLimit
0x804708BC
0x804709B3
F8
BYTE[F8]/KiArgumentTable
0x814C6000
0x82CC5FFF
1800000
PFN[100000]/MmPfnDatabase (最大为 4GB )
0xA01859F0
0xA01863EB
9FC
PROC[27F]/W32pServiceTable
0xA0186670
0x A01863EE
27F
BYTE[27F]W32pArgumentTable
0xC0000000
0xC03FFFFF
400000
X86_PE[100000]/ 页目录和页表
0xC1000000
0xE0FFFFFF
20000000
系统缓存( MmSystemCacheStart, MmSystemCacheEnd )
0xE1000000
0xE77FFFFF
推荐阅读
- 奶酪陷阱大结局是什么
- 叶澜依结局
- 安装Microsoft Windows 2000 恢复控制台
- 4 《Undocumented Windows 2000 Secrets》翻译 --- 第三章
- 1 《Undocumented Windows 2000 Secrets》翻译 --- 第二章
- 浅谈非系统管理员用户本地登录Windows 2000 server
- 同床异梦秋瓷炫多少期
- Windows 2000进程细述
- 《Undocumented Windows 2000 Secrets》翻译 --- 3
- Windows2000的日志文件详述及删除方法
