似乎 GlobalMemoryStatusEx 和 GetPerformanceInfo Windows API 都会报告页面文件的 current 大小,但可以将页面文件(每个磁盘)配置为增长到一定限制。 是否有 API 可以检索该限制,以便我可以计算整个系统的最大可能提交大小(前提是页面文件设置保持不变)?
似乎可以通过 WMI(COM 和/或命令行):
wmic pagefile list /format:list
wmic pagefileset list /format:list
但也可以通过读取/解析此注册表设置以依赖于平台的1方式完成:
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PagingFiles
如此处所述,此格式为 REG_MULTI_SZ(每页文件一行):
<page-file> [<initial-size> <max-size>]
例如:
c:\pagefile.sys 1024 8192
如果是系统管理的页面文件,该值将为:
?:\pagefile.sys
在系统管理的情况下,大小受到系统驱动器上的可用空间的限制(对于 Hyper-V VM 来说并不完全正确)。
1 注册表设置似乎至少在 Windows XP、7、2012 和 10(32/64 位,PC)中有效。
另请注意,注册表可以修改,并且在重新启动之前可能无法反映系统的实际状态。