物理内存
最大物理内存
10-10-12分页 最多识别物理内存为4GB
2-9-9-12分页 最多识别物理内存为64GB
操作系统的 _ExVerifySuite() 函数限制了它无法超越4GB(网上有补丁可以突破4GB)
实际物理内存
MmNumberOfPhysicalPages * 4 = 物理内存
一共有7FF6C个物理页,乘4后得到的就是 KB。
物理内存管理
全局数组
数组指针:_MMPFN* MmPfnDatabase
数组长度:MmNumberOfPhysicalPages(上面已经演示过了)
80c86000 ~ (80c86000+0x18)描述的就是第一个物理页的信息,
80c8601C ~ (80c86000+0x18)描述的就是第二个物理页的信息,以此类推…
如果我们想找0x8000物理地址对应的物理页,用0x8000除0x1000(一页1000h),得到的就是索引,
80c86000+1c*索引 == 这个物理页对应的_MMPFN结构
数组成员(PFN数据库)
kd> dt _MMPFN
nt!_MMPFN
+0x000 u1 : __unnamed
+0x004 PteAddress : Ptr32 _MMPTE
+0x008 u2 : __unnamed
+0x00c u3 : __unnamed
+0x010 OriginalPte : _MMPTE
+0x018 u4 : __unnamed
typedef stru