2

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

但是当我尝试从 C# 代码中获取相同的值时,情况就不同了。我已经使用kernel32.dll 的函数从我的代码GlobalMemoryStatusEx()中读取相同的值 (即 dwTotalPageFile) 。它显示了一些 17247666176 字节值,等于 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]

请任何人都可以帮助我!

4

1 回答 1

2

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

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

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

于 2013-03-20T08:50:42.807 回答