如何在Windows上使用C ++检索页面文件大小的“Minimum allowed”/“Recommended”/“Currently allocated”值?

Windows XP / Vista / 7

  1. 系统属性
  2. 高级选项卡
  3. 性能下的设置…button
  4. 高级选项卡
  5. 更改…button
  6. 在“所有驱动器的页面文件大小总计”部分中该窗口底部的数字

任何人都知道如何从C ++程序中获取这三个数字?

谢谢!

你可以使用WMI做一些这个,你想要的类是Win32_PageFileSetting 。 在.Net中,通过System.Management(更容易)访问。 如果你想运行时使用,你可以使用Win32_PageFileUsage 。

请注意您在该文档中需要提升的权限。

在这一点上,我看不到任何方式来访问最小值和建议值。

该信息存储在PagingFiles值中的HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Session Manager\Memory Managment中。 这是一个REG_MULTI_SZ ,每个字符串的形式是:

PAGINGFILEPATH StartSize MaxSize

所以,例如,我将C盘设置为16384 MB,关键数据如下所示:

L"C:\pagefile.sys 16384 16384\0"

注2:可以省略号码,在这种情况下,系统管理指定驱动器上页面文件的大小。

注意:此处指定的值不是系统当前使用的值,而是系统重新引导时使用的值。 这是因为一旦系统运行,分页文件一般不能被改变,除了扩展分页文件。 所以如果用户改变了设置但没有重新启动,该键将包含重新启动后的设置,而不是当前有效的设置。

如果您希望当前有效的设置,您可以检查每个驱动器上的pagefile.sys的大小。 这不会给你最大的大小,但它至少会给你一个想法。