GlobalMemoryStatusEx 和 GetPerformanceInfo Windows API 似乎都报告页面文件的当前大小,但页面文件可以配置(每个磁盘)增长到某个限制。
是否有 API 来检索该限制,以便我可以计算整个系统的最大可能提交大小(如果页面文件设置保持不变)?
最佳答案
似乎可以通过 WMI(COM 和/或命令行):
wmic pagefile list /format:list
wmic pagefileset list /format:list
但也可以通过读取/解析此注册表设置以平台相关* 方式完成:
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PagingFiles
如 here 所述,此格式为 REG_MULTI_SZ(每页文件一行):
<page-file> [<initial-size> <max-size>]
例如:
c:\pagefile.sys 1024 8192
如果是系统管理的页面文件,该值将是:
?:\pagefile.sys
在系统管理的情况下,大小受系统驱动器上可用空间的限制(对于 Hyper-V VM 并非完全如此)。
* 注册表设置似乎至少适用于 Windows XP、7、2012 和 10(32/64 位,PC)。
关于windows - winapi 检索所有驱动器的最大配置页面文件大小,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37521151/