windows - 有什么方法可以在 Vista x64 上分配 4GB 以上的物理内存吗?

标签 windows memory-management 64-bit device-driver dma

我有一台具有 6GB RAM 的 Vista x64 机器,我正在尝试测试设备驱动程序在对 4GB 以上的物理地址进行 DMA 时是否正常工作。

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

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

有没有办法强制Windows分配4GB以上的虚拟地址并由4GB以上的物理地址支持?

最佳答案

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

相关文章:

windows - windows脚本可以实时输出吗?

c++ - 创建 "no-op"版本的 dll?

c# - 后台任务中的 Sqlite(Windows 运行时组件项目)

c - 如何正确(有效地)释放 gtk 小部件中的内存

windows-vista - openCV 支持 vista 64x

windows - GUI 是 Windows Serial 中 WinTER 的一部分吗?

c - K&R 书末描述的存储分配器中的 "space itself"在哪里?

objective-c - 寻找过度释放的根源

python - 共享 64 位 python 安装

c# - 您可以使用 List<List<struct>> 绕过 2gb 对象限制吗?