第十三章——Windows的内存结构(二)
每个被分配的物理存储页具有不同的页保护属性,例如PAGE_READWRITE、PAGE_WRITECOPY等等。当系统把一个.EXE或者DLL映射到一个地址空间的时候,系统会计算有多少页面是可写的,然后系统会从页交换文件中分配存储空间来容纳这些可写页面,除非应用程序真的写入可写页面,否则不会用到页交换文件。
在预订地址空间或者调拨物理存储器时,不能使用PAGE_WRITECOPY或PAGE_EXECUTE_WRITECOPY保护属性,否则会导致VirtualAlloc失败。
PAGE_GUARD属性是的应用程序在页面中的任何一个字节被写入时得到通知,Windows在创建线程栈的时候会用到它。
进程虚拟地址空间中每个区域可能是以下四种类型之一:
1.闲置,表示还没有被预订。
2.私有,表示虚拟地址以页交换文件作为后备存储器。
3.映像,表示虚拟地址以映像文件(比如.EXE或者.DLL)为后备存储器。
4.已映射,以内存映射文件为后备存储器。