AWE (Address Windows Extension) 可以使用开启 PAE 后普通应用程序无法使用到的内存,这部分内存系统可能无法识别,但通过 AWE 则可以完美访问。操作 AWE 内存的具体步骤如下,大部分内容来自北风网视频教程。 1、开窗 VirtualAlloc + MEM_PHYSICAL,明确告知系统,这段保留的空间未来将存放我自己申请的物理内存。 2、分配物理内存 AllocateUserPhysicalPages,按页面个数来分配,不是按字节分配的,最少一个页面 4K 的物理内存。 3、将申请好的物理内存映射到窗口中(相当于提交)MapUserPhysicalPages。 4、对已经提交的内存读写… 5、释放物理内存页面。
注意事项
1、打开 PAE 后并不是所有应用程序都可以访问大于 4GB 的内存,要访问需要通过 AWE 打开 PAE 高出 4GB 地址空间的内存,AWE 但不仅限于打开 PAE 后多出来的内存,当需要自己操作物理页面的时候,都可以用到它。(顺网无盘的产品利用系统未识别的内存做缓存就是这个原理) 2、使用 AWE 一样需要锁定内存页的权限。
代码及配图
1 | #define _WIN32_WINNT 0x0502 |