在 Win32 系统上获取最大可寻址内存 space

Get the maximum adressable memory space on a Win32 system

在 Win32 系统上有没有一种方法可以使用 Win32 API(或安装在 >=XP 系统上的任何可访问 DLL)以编程方式获取操作系统的可寻址内存空间的完整大小。我知道 GetPerformanceInfoGlobalMemoryStatusEx,但前者似乎只处理物理内存,后者与我的程序可寻址的内存有关 ,没有操作系统 ;因为我的程序必须是 x86 并且可能在 x64 系统上运行,所以不能保证这甚至是大概的。

注意:我希望但不需要确切的尺寸。我只需要一个 "really good guess."

GetPhysicallyInstalledSystemMemory可以获得物理极限

GetNativeSystemInfo可以检索系统可以访问的最高用户虚拟地址。

这两个满足你的要求吗?