如何在Windows中获取每个进程磁盘活动

我需要提取给定进程的磁盘统计信息,我可以获取列出的进程并使用WMI和PerformanceCounters获取列出的CPU和内存等整体信息。 但是这些信息都是捆绑在一起的,有没有办法在每个进程中提取这些数据。 有点像Windows资源监视器?

提前致谢

如果需要实时数据,则应实现ETW监听器。

ETW是在Windows中跟踪性能信息的方法。 它支持Windows 2000。

Windows中的每个组件都报告ETW事件(如果有一个侦听器在等待数据)。

例如,磁盘信息,内存(消耗,页面错误等),争用,CPU使用情况(每个核心,每个线程,每个应用程序,甚至是对磁盘或网络的单个IO请求。驱动程序使用它,.NET CLR使用它(获取JIT或GC统计数据),这些例子是无穷无尽的。

我建议您首先下载XPerf \ Xperf视图,或者Windows性能记录器+分析器,PerfView,尝试查看您正在寻找的信息,然后开始创建您的托管ETW监听器。

您可以从这篇博客文章开始,或者搜索Vans Morison(负责MS中的托管ETW提供商和消费者)的ETWpost。

希望这有帮助,Ofir。