我有一台带有6GB RAM的Vista x64机器,我正在尝试测试设备驱动程序在对4GB以上的物理地址执行DMA时是否正常运行。
我找到了AllocationPreference registry key,它应该“强制分配从较低地址之前的较高地址分配”,但页面不清楚这是影响物理地址还是仅影响虚拟地址。根据我的代码的行为,我怀疑它只影响虚拟地址。
我还遇到了nolowmem启动选项,它应该将“操作系统,设备驱动程序和所有应用程序加载到4 GB边界以上的地址”,但它似乎只适用于32位版本的Windows。我尝试在Vista x64上启用,但机器无法启动。我刚刚在几天前安装了这台机器,所以它没有任何服务包;我正在安装这些,看看这是否是由于Windows的错误。
有没有办法强制Windows分配超过4GB的物理地址支持的4GB以上的虚拟地址?