确定正在运行的可执行文件是否具有IMAGE_FILE_LARGE_ADDRESS_AWARE?

时间:2014-11-25 21:33:59

标签: windows winapi memory exe portable-executable

是否有某种Windows API或其他合理直接的方法来确定当前正在运行的程序是否启用了IMAGE_FILE_LARGE_ADDRESS_AWARE?我知道我可以将进程的exe文件作为文件打开,阅读其标题信息,然后将其解析到那里,但如果有更清洁的方法,我可以想知道。

要明确:我正在讨论当前正在执行的进程 - 即我想编写一个代码来检测它自己的可执行文件的这个标志(或缺少它),而不是一些完全不同的可执行文件。

1 个答案:

答案 0 :(得分:1)

使用GlobalMemoryStatusEx功能查询流程可用的虚拟内存量。

如果ullTotalVirtual在32位进程中返回超过2GB,则表示已设置LARGE_ADDRESS_AWARE标志。