读书人

请问关于地址窗口扩展AWE

发布时间: 2012-08-09 15:59:21 作者: rapoo

请教关于地址窗口扩展AWE
书上说AWE可以解决访问过大地址空间的问题
正好我想要做一个类似的需求,就是申请一片大概2G到3G的,连续的内存块。
我的机器配置是8g,32位 xp sp3

对AWE的介绍我始终没看太明白。感觉有点像是在做“内存页面映射”,就跟mappingfile差不多,只不过文件映射是在文件上而AWE就是在页面上,不知道是不是这个意思。
而且书上说这个可以解决地址空间不够的问题(其实物理内存空间早就不是问题了),但是始终没看出来哪儿可以解决这个问题,譬如我开始第一步就失败了。
PVOID pvWindow = VirtualAlloc(NULL, 1024*1024*1000, MEM_RESERVE|MEM_PHYSICAL, PAGE_READWRITE);
size_t errorid = GetLastError();

我尝试保留1G的内存,失败了,返回值是8,说的是Not enough storage is available to process this command.

所以我不知道到底应该如何理解AWE,我如何才能做到支持一片非常大的内存呢?速度慢一点都没问题,文件映射本来是可以解决的,但是文件映射没办法做到指针的管理,所以只好求助于AWE了。

[解决办法]

探讨
哦!所以说AWE解决地址空间不够的办法就是,始终保留一个适当大小的地址空间,然后将不同的页面映射到同一个地址空间上去?

读书人网 >C++

热点推荐