【问题标题】:How can I programmatically determine the maximum user-mode space of the (windows) OS?如何以编程方式确定(Windows)操作系统的最大用户模式空间?
【发布时间】:2009-05-21 19:26:12
【问题描述】:

我正在编写一个诊断应用程序,它需要记录用户设置为他的用户模式空间(也就是用户模式虚拟地址空间)的内容 也就是 WinXP 中的 /3GB 开关或 Vista/Win7 上 bcdedit 中的 increaseuserva 开关。

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

有什么想法吗?

【问题讨论】:

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


    【解决方案1】:

    GlobalMemoryStatusEx 会给你一个带有ullTotalVirtualMEMORYSTATUSEX 结构:

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

    请注意,您必须将您的 EXE 标记为 LARGEADDRESSAWARE 才能使用 see 3GB in your process

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

    【讨论】:

      猜你喜欢
      • 2010-09-18
      • 1970-01-01
      • 2011-06-29
      • 2016-10-08
      • 1970-01-01
      • 2011-07-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多