c# - 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
?
解决方案
推荐阅读
- android - JSON对象到字符串数组
- azure - Deploy console app from Azure Devops (cloud version) to a machine with a Microsoft-provided host agent (Failed to create PSDrive with destination...)
- javascript - 无法将复选框值发送到 php
- reporting-services - 一过滤多列SSRS
- c - 没有鼠标的win32,如何将键盘快捷键分配给按钮
- java - 如何在 Webflux 功能端点的测试中禁用 Spring Security
- azure-ad-graph-api - 如何设置获取使用 Graph API 的 Token
- sql - 如何将包含自身的值放入 SQL 中的查询
- python - 在python中拆分子字典
- c# - 检查 MS-Access 数据库是否已经打开,如果打开消息用户,请等待并重试(使用 VB.net 中的线程)