Windows winapi检索所有驱动器的最大配置页面文件大小

Windows winapi检索所有驱动器的最大配置页面文件大小,windows,winapi,Windows,Winapi,似乎和Windows API都报告了页面文件的当前大小,但是页面文件可以配置(每个磁盘)以增长到一定的限制。 是否有API来检索该限制,以便我可以计算整个系统的最大可能提交大小(前提是页面文件设置保持不变)?似乎可以通过WMI(COM和/或命令行): 但也可以通过读取/解析此注册表设置以依赖于平台的*方式完成: HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PagingFiles 如上所述,此格式为

似乎和Windows API都报告了页面文件的当前大小,但是页面文件可以配置(每个磁盘)以增长到一定的限制。
是否有API来检索该限制,以便我可以计算整个系统的最大可能提交大小(前提是页面文件设置保持不变)?

似乎可以通过WMI(COM和/或命令行):

但也可以通过读取/解析此注册表设置以依赖于平台的*方式完成:

HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PagingFiles

如上所述,此格式为REG_MULTI_SZ(每页文件一行):

对于系统管理的页面文件,该值应为:

?:\pagefile.sys
在系统管理的情况下,大小受到系统驱动器上可用空间的限制(对于Hyper-V虚拟机来说并非完全如此)


*注册表设置至少在Windows XP、7、2012和10(32/64位,PC)中有效。

若要计算此值,请调用GetPerformanceInfo并从CommitLimit中减去CommitTotal的值。:系统在不扩展分页文件的情况下可提交的当前最大页数。如果内存被添加或删除,或者页面文件增加、缩小或被添加,这个数字可能会改变。当然,它可能会改变。页面文件的大小可以随时更改。即使您找到了确定当前最大大小的方法,也没有什么可以阻止用户增加最大大小。然后呢?当然,这不是一个真正的问题。当前的大小是您所关心的全部。我想不出有多少理由让你担心。我不是说手动更改页面文件设置,我是说由于内存压力,页面文件会自动增长。我需要知道页面文件可以增长多少,如果需要的话。
<page-file> [<initial-size> <max-size>]
c:\pagefile.sys 1024 8192
?:\pagefile.sys