C++ 如何获得任务管理器中核心内存的分页数和未分页数 (NTQUERYSYSTEMINFORMATION)

六月心悸 2015-02-09 01:34:12
我想通过下面这个函数获得分页 和 非分页
typedef struct _SYSTEM_PERFORMANCE_INFORMATION
{
LARGE_INTEGER IdleTime;//CPU空闲时间;
LARGE_INTEGER ReadTransferCount;//I/O读操作数目;
LARGE_INTEGER WriteTransferCount;//I/O写操作数目;
LARGE_INTEGER OtherTransferCount;//I/O其他操作数目;
ULONG ReadOperationCount;//I/O读数据数目;
ULONG WriteOperationCount;//I/O写数据数目;
ULONG OtherOperationCount;//I/O其他操作数据数目;
ULONG AvailablePages;//可获得的页数目;
ULONG TotalCommittedPages;//总共提交页数目;
ULONG TotalCommitLimit;//已提交页数目;
ULONG PeakCommitment;//页提交峰值;
ULONG PageFaults; //页故障数目;
ULONG WriteCopyFaults;//Copy-On-Write故障数目;
ULONG TransitionFaults; //软页故障数目;
ULONG Reserved1;
ULONG DemandZeroFaults;//需求0故障数;
ULONG PagesRead;//读页数目;
ULONG PageReadIos;//读页I/O操作数;
ULONG Reserved2[2];
ULONG PagefilePagesWritten;//已写页文件页数;
ULONG PagefilePageWriteIos;//已写页文件操作数;
ULONG MappedFilePagesWritten;//已写映射文件页数;
ULONG MappedFileWriteIos; //已写映射文件操作数;
ULONG PagedPoolUsage;//分页池使用;
ULONG NonPagedPoolUsage; //非分页池使用;
ULONG PagedPoolAllocs;//分页池分配情况;
ULONG PagedPoolFrees;//分页池释放情况;
ULONG NonPagedPoolAllocs;//非分页池分配情况;
ULONG NonPagedPoolFress; //非分页池释放情况;
ULONG TotalFreeSystemPtes;//系统页表项释放总数;
ULONG SystemCodePage; //操作系统代码页数;
ULONG TotalSystemDriverPages;//可分页驱动程序页数;
ULONG TotalSystemCodePages;//操作系统代码页总数;
ULONG SmallNonPagedLookasideListAllocateHits; //小非分页侧视列表分配次数;
ULONG SmallPagedLookasideListAllocateHits;//小分页侧视列表分配次数;
//ULONG Reserved3;    
ULONG MmSystemCachePage;//系统缓存页数;
ULONG PagedPoolPage;//分页池页数;
ULONG SystemDriverPage; //可分页驱动页数;
ULONG FastReadNoWait;//异步快速读数目;
ULONG FastReadWait;//同步快速读数目;
ULONG FastReadResourceMiss;//快速读资源冲突数;
ULONG FastReadNotPossible;//快速读失败数;
ULONG FastMdlReadNoWait;//异步MDL快速读数目;
ULONG FastMdlReadWait;//同步MDL快速读数目;
ULONG FastMdlReadResourceMiss;//MDL读资源冲突数;
ULONG FastMdlReadNotPossible;//MDL读失败数;
ULONG MapDataNoWait;//异步映射数据次数;
ULONG MapDataWait;//同步映射数据次数;
ULONG MapDataNoWaitMiss;//异步映射数据冲突次数;
ULONG MapDataWaitMiss;//同步映射数据冲突次数;
ULONG PinMappedDataCount;//牵制映射数据数目;
ULONG PinReadNoWait;//牵制异步读数目;
ULONG PinReadWait;//牵制同步读数目;
ULONG PinReadNoWaitMiss;//牵制异步读冲突数目;
ULONG PinReadWaitMiss;//牵制同步读冲突数目;
ULONG CopyReadNoWait;//异步拷贝读次数;
ULONG CopyReadWait; //同步拷贝读次数;
ULONG CopyReadNoWaitMiss;//异步拷贝读故障次数;
ULONG CopyReadWaitMiss; //同步拷贝读故障次数;
ULONG MdlReadNoWait;//异步MDL读次数;
ULONG MdlReadWait;//同步MDL读次数;
ULONG MdlReadNoWaitMiss;//异步MDL读故障次数;
ULONG MdlReadWaitMiss;//同步MDL读故障次数;
ULONG ReadAheadIos; //向前读操作数目;
ULONG LazyWriteIos; //LAZY写操作数目;
ULONG LazyWritePages;//LAZY写页文件数目;
ULONG DataFlushes;//缓存刷新次数;
ULONG DataPages;//缓存刷新页数;
ULONG ContextSwitches;//环境切换数目;
ULONG FirstLevelTbFills;//第一层缓冲区填充次数;
ULONG SecondLevelTbFills;//第二层缓冲区填充次数;
ULONG SystemCall;//系统调用次数;
}SYSTEM_PERFORMANCE_INFORMATION,*PSYSTEM_PERFORMANCE_INFORMATION;

可获得的PagedPoolPage 的值 与系统自带的任务管理器 显示的分页 值有很大区别
不知道为什么?网上这方面的资料很少
...全文
242 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
六月心悸 2015-02-12
  • 打赏
  • 举报
回复
引用 1 楼 grf9527 的回复:
如果我没有猜错。是不是单位转换的时候,你用的是1000,而不是1024.
没有呀 我用的是1024进行换算呀
grf9527 2015-02-11
  • 打赏
  • 举报
回复
如果我没有猜错。是不是单位转换的时候,你用的是1000,而不是1024.

16,372

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧