日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

9 《Undocumented Windows 2000 Secrets》翻譯 --- 第四章( 四 )


示列 4-17. 地址范圍是: 0x80000000 --- 0x9FFFFFFF 的 PDE
Windows 2000 的內(nèi)存布局
本章的最后一部分將給出在一個 Windows 2000 進(jìn)程“看”來, 4GB 線性地址空間的總體布局是什么樣子 。表 4-9 給出了多個基本數(shù)據(jù)結(jié)構(gòu)的內(nèi)存范圍 。它們之間的“大洞( big hole )” 有不同的用途,如,用于進(jìn)程模塊和設(shè)備驅(qū)動程序的加載區(qū)域,內(nèi)存池,工作集鏈表等等 。注意,有些內(nèi)存地址和內(nèi)存塊的大小在不同的系統(tǒng)之間有很大的差異,這 取決于物理內(nèi)存和硬件的配置情況、進(jìn)程的屬性以及其他一些系統(tǒng)變量 。因此,這里給出的僅僅是一個草圖而已,并不是精確的布局圖 。
有些物理內(nèi)存塊在線性地址空間中出現(xiàn)的兩次或更多次 。例如, SharedUserData 區(qū)域位于線性地址 0xFFDF0000 ,并且并鏡像到 0x7FFE0000。這兩個地址都指向物理內(nèi)存中的同一個頁,這意味著,如果向 0xFFDF0000 n 處寫入一個字節(jié),那么 0x7FFE0000 n 處的值也會隨之改變 。這是一個虛擬內(nèi)存的世界 ---- 一個物理地址可以被映射到線性地址空間中的任何地方,即使一個物理地址在同一時間映射到多個線性地址也是可以的 。回憶一下 圖 4-3 和 圖 4-4 ,它們清楚地展示了線性地址的這種“虛假行為” 。它們的目錄和表位域正確的指向用來確定數(shù)據(jù)實(shí)際位置的結(jié)構(gòu)體 。如果兩個 PTE 的 PFN 恰好是相同的,那么它們對應(yīng)的線性地址將指向物理內(nèi)存相同位置 。
表 4-9. 進(jìn)程地址空間中的可確認(rèn)的內(nèi)存區(qū)域
起始地址
結(jié)束地址
十六進(jìn)制大小
類型 / 描述
0x00000000
0x0000FFFF
10000
底部的受保護(hù)塊( Lower guard block )
0x00010000
0x0001FFFF
10000
WCHAR[]/ 環(huán)境字符串,在一個 4KB 頁中分配
0x00020000
0x0002FFFF
10000
PROCESS_PARAMETERS/ 在一個 4KB 頁中分配
0x00030000
0x0012FFFF
1000000
DWORD[4000]/ 進(jìn)程堆棧(默認(rèn); 1MB )
0x7FFDD000
0x7FFDDFFF
1000
TEB/1# 線程的線程環(huán)境塊
0x7FFDE000
0x7FFDEFFF
1000
TEB/2# 線程的線程環(huán)境塊
0x7FFDF000
0x7FFDFFFF
1000
PEB/ 進(jìn)程環(huán)境塊
0x7FFE0000
0x7FFE02D7
2D8
KUSER_SHARED_DATA/ 用戶模式下的 SharedUserData
0x7FFF0000
0x7FFFFFFF
10000
頂部的受保護(hù)塊( 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/ 內(nèi)核任務(wù)狀態(tài)段(繁忙)
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
系統(tǒng)緩存( MmSystemCacheStart, MmSystemCacheEnd )
0xE1000000
0xE77FFFFF

推薦閱讀