我有一台具有6GB RAM的Vista x64计算机,并且正在尝试对DMA处理4GB以上的物理地址时,设备驱动程序是否正常运行。

我已经找到了AllocationPreference registry key,它应该“强制分配从较高的地址分配到较低的地址,然后再从较低的地址开始分配”,但是该页面尚不清楚这是否影响物理地址还是仅影响虚拟地址。根据我的代码的行为,我怀疑它只会影响虚拟地址。

我还遇到过nolowmem引导选项,该选项应该将“操作系统,设备驱动程序和所有应用程序加载到4 GB边界以上的地址中”,但它似乎仅适用于32位版本的Windows。我尝试在Vista x64上启用该功能,但该计算机无法启动。我几天前才安装了这台机器,所以它没有任何服务包。我目前正在安装这些软件,以查看这是否归因于Windows错误。

有什么方法可以强制Windows分配4GB以上的虚拟地址并由4GB以上的物理地址支持?

最佳答案

尝试MmAllocateContiguousMemorySpecifyCache

关于windows - 有什么方法可以在Vista x64上分配4GB以上的物理内存?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1156271/

10-13 04:10