利用AWE实现32位程序申请超大物理内存易语言源码众所周知,32位程序理论上是不能 申请/读写 超过4GB内存的,不过这里的内只能指虚拟内存。
如果把这个概念拓展到物理内存,情况就完全不同了。
虚拟内存有 大小/读写 限制,不代表物理内存有 大小/读写 限制。(虚拟内存最终是映射到物理内存的)
如何申请物理内存?
微软其实是已经提供API的:AllocateUserPhysicalPages
如何读写物理内存呢?
很可惜,应用层不能直接读写物理内存,但是微软提供了API将物理内存映射到虚拟内存:MapUserPhysicalPages
所以,AWE其实就是允许32位的程序申请物理内存(需要SeLockMemoryPrivilege权限),并允许程序将指定的物理内存映射到虚拟内存。
物理内存有多少取决于内存条大小。
所以可以利用这个方式很轻松地实现 申请超大内存/读写超大内存。
反复强调:这个方法并没有解除虚拟内存的限制!仅仅是允许将同一虚拟内存映射到不同的物理内存。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系贝贝进行处理。本站默认解压密码:www.hibbba.com



评论(0)