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

我想显示进程列表(Windows,C ++)以及它们以KB /秒为单位从磁盘读取和写入的数量。

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

但是我无法find相关的API调用或在perfmon计数器中find任何东西。 任何人都可以指出我的方向?

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

这个API会告诉你I / O操作的总数以及总字节数。

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