首页 > 解决方案 > Win32_Process 中的 PrivatePageCount 是什么?

问题描述

PrivatePageCount 文档说:

PrivatePageCount

数据类型:uint64

限定符:MappingStrings ("Win32API|Process Status|SYSTEM_PROCESS_INFORMATION|PrivatePageCount"), DisplayName ("Private Page Count")

当前分配的只有此 Win32_Process 实例表示的进程才能访问的页数。

但是检查 ManagementObjectSearcher 的值,它看起来与 的值相同PageFileUsage,但以字节而不是千字节为单位。

using (var items = new ManagementObjectSearcher(String.Format("Select * From Win32_Process")).Get())
{
    foreach (var item in items)
    {
        var PageFileUsage = (UInt32)item["PageFileUsage"]; // kb
        var PrivatePageCount = (UInt64)item["PrivatePageCount"]; // same as PageFileUsage?

        Debug.Assert(PageFileUsage == (PrivatePageCount / 1024));
    }
}

将此值乘以系统的页面大小 ( Environment.SystemPageSize),得到一个以 TB 为单位的值,但它并不接近虚拟内存(地址空间)。

文档可能是错误的并且PrivatePageCount等同于PageFileUsage

标签: c#windowswmi

解决方案


推荐阅读