【发布时间】:2010-12-23 09:21:02
【问题描述】:
据此MSDN page:
WOW64 使 32 位应用程序能够 利用 64 位内核。 因此,32 位应用程序可以使用 更多的内核句柄和 窗把手。但是,32 位 应用程序可能无法创建 WOW64 下的线程数与它们一样多 在基于 x86 的本机运行时可以 系统,因为 WOW64 分配了一个 额外的 64 位堆栈(通常为 512 KB) 为每个线程。此外,一些 保留的地址空间量 对于 WOW64 本身和数据 它使用的结构。数量 保留取决于处理器; Intel Itanium 保留了更多内容 比在 x64 处理器上。
如果应用程序有 IMAGE_FILE_LARGE_ADDRESS_AWARE 标志 在图像头中设置,每个 32 位 应用程序接收 4 GB 的虚拟 WOW64中的地址空间 环境。如果 IMAGE_FILE_LARGE_ADDRESS_AWARE 标志是 未设置,每个 32 位应用程序 接收 2 GB 的虚拟地址空间 在 WOW64 环境中。
如何在我的 Delphi 2007 应用程序中有效地设置 IMAGE_FILE_LARGE_ADDRESS_AWARE 标志,以便让我的 32 位应用程序 Wow64 感知并寻址高达 4GB 的内存?
【问题讨论】: