以编程方式获取Windows上的每个进程磁盘io统计信息?

时间:2009-10-28 20:25:35

标签: c++ windows performance disk

我想显示一个进程列表(Windows,C ++)以及它们从磁盘读取和写入的内容(KB /秒)。

Windows 7的资源监视器具有这样的能力,所以我应该能够这样做。

但是我无法找到相关的API调用或在perfmon计数器中找到任何内容。有人能指出我的方向吗?

2 个答案:

答案 0 :(得分:11)

您可以调用GetProcessIoCounters来获取每个进程的整体磁盘I / O数据 - 您需要自己跟踪增量并转换为基于时间的速率。

此API将告诉您I / O操作的总数以及总字节数。

答案 1 :(得分:3)

WMI可以做到这一点,只要您定期对其进行快照以获取某些“最近”时间段的差异统计信息。 This post提供了一种特殊的混合解决方案,VBScript从WMI中读取信息,并Perl在Windows控制台中不断显示信息。尽管语言混合很奇怪,但我认为它是如何获得所需信息的一个很好的例子(当然,用C ++重新编写所有信息应该是非常可能的。)