C# 使用C的计算机的总页面文件大小#

C# 使用C的计算机的总页面文件大小#,c#,C#,我正在尝试读取所有驱动器的总页面文件大小。 在我的电脑上显示大约8375MB。[当我从控制面板看到时] 但当我试图从C代码中获得相同的值时,情况就不同了。 我使用了kernel32.dll的GlobalMemoryStatusEx()函数从我的 代码。它显示约1724766676字节值,等于16448.65 MB [return: MarshalAs(UnmanagedType.Bool)] [DllImport("kernel32.dll", CharSet = CharSet.Auto,

我正在尝试读取所有驱动器的总页面文件大小。 在我的电脑上显示大约8375MB。[当我从控制面板看到时]

但当我试图从C代码中获得相同的值时,情况就不同了。 我使用了kernel32.dll的
GlobalMemoryStatusEx()
函数从我的 代码。它显示约1724766676字节值,等于16448.65 MB

[return: MarshalAs(UnmanagedType.Bool)]

[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
static extern bool **GlobalMemoryStatusEx**([In, Out] MEMORYSTATUSEX lpBuffer);
[操作系统:Windows 7 x64]


谁能帮帮我吗

PagedSystemMemorySize64是属于该进程的分页内存池中操作系统内核内存的总字节数。它与Taskmgr.exe中的“分页池”列相对应

PagedMemorySize64是为进程分配的用户模式虚拟内存的总字节数。它与Taskmgr.exe中的“提交大小”列相对应


请注意,在这些部分中,进程共享内存,所有进程的分配总和远远大于实际使用的内存量。此外,您无法合理地计算分页文件中“未使用”的空间量,Windows会根据运行进程的需要动态地扩展和收缩它。

转到控制面板>>系统>>高级系统设置转到性能部分>>设置按钮>>高级选项卡。。。请参见底部:“这是物理内存加上页面文件的大小,减去一小部分开销。”没有“所有驱动器”的概念,只有一个页面文件。而且它不再是一个固定的数字,页面文件会根据需要动态增长以保持进程运行。GlobalMemoryStatusEx()的MSDN文章明确指出,应该改用GetPerformanceInfo()。有人从数字中得出错误结论的几率太高,根本无法使这项功能发挥作用。汉斯:你可以为每个驱动器打开和关闭页面文件,因此可以有多个页面文件。