如何以编程方式确定(Windows)操作系统的最大用户模式空间?

时间:2009-05-21 19:26:13

标签: windows memory-management virtual-address-space

我正在编写一个诊断应用,需要记录用户设置的用户模式空间a.k.a.用户模式虚拟地址空间 a.k.a.在WinXP中的/ 3GB开关或在Vista / Win7上的bcdedit中的increaseuserva开关。

C ++或C ++ / CLI都可以。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

GlobalMemoryStatusEx将为您提供MEMORYSTATUSEX结构ullTotalVirtual

  

调用进程的虚拟地址空间的用户模式部分的大小,以字节为单位。此值取决于进程类型,处理器类型和操作系统配置。例如,对于x86处理器上的大多数32位进程,此值约为2 GB,对于在启用了4 GB调优的系统上运行大地址的32位进程,此值约为3 GB。

请注意,为了LARGEADDRESSAWARE,您必须将EXE标记为see 3GB in your process

我认为还有另一个功能也会返回此信息(不 - 不是GlobalMemoryStatus已弃用)以及处理器信息 - 但我不记得它是ATM。