标签:
系统物理页面是由 (Page Frame Number Database )简称PFN数据库来进行管理,实际上是一个数组,每个物理页面都对应一个PFN项。
进程的地址空间是通过VAD(Virtual Address Destriptor)管理。每个进程都有一个AVL树来保存这些VAD节点,来记录使用的地址以及属性等。
进程的内存地址属性分为保留和提交,保留即是使用时候才实际分配内存,而提交时需要交割对现空间的,需要分配物理页面的,然后将两者关联起来。
我们从NtAllocateVirtualMemory函数入手
首先检查函数参数的正确性,并且对涉及到的地址进行地址对齐,再计算实际需要的空间长度。
接下来,获取需要操作的进程对象和进程对象的地址AVL树
标签:
原文地址:http://www.cnblogs.com/itdef/p/5839159.html