WOW64使32位应用程序能够利用64位内核。因此,32位应用程序可以使用更多的内核句柄和窗口句柄。但是,在WOW64下运行时,32位应用程序可能无法像在x86体系结构上本地运行时那样创建许多线程,因为WOW64为每个线程分配了一个额外的64位堆栈(通常为512KB)。此外,一些地址空间保留给WOW64本身和它使用的数据结构。保留的数量取决于处理器;在Intel Itanium上保留的比在x64处理器上保留的更多。
如果应用程序在映像头中设置了IMAGE_FILE_LARGE_ADDRESS_AWARE标志,则每个32位应用程序在WOW64环境中将接收4GB虚拟地址空间。如果未设置IMAGE_FILE_LARGE_ADDRESS_AWARE标志,则每个32位应用程序在WOW64环境中将接收2GB虚拟地址空间。
如何有效地在Delphi 2007应用程序中设置IMAGE_FILE_LARGE_ADDRESS_AWARE标志,以使我的32位应用程序Wow64“感知”并寻址高达完整的4GB内存?