Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/146.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在Windows上以编程方式获取每进程磁盘io统计信息?_C++_Windows_Performance_Disk - Fatal编程技术网

C++ 在Windows上以编程方式获取每进程磁盘io统计信息?

C++ 在Windows上以编程方式获取每进程磁盘io统计信息?,c++,windows,performance,disk,C++,Windows,Performance,Disk,我想显示进程列表(Windows、C++),以及它们从磁盘读写的量(KB/秒) Windows7的资源监视器有这个功能,所以我应该也能这样做 但是,我无法在perfmon计数器中找到相关的API调用或任何内容。有人能告诉我方向吗?您可以打电话获取每个进程的总体磁盘I/O数据-您需要跟踪增量并自己转换为基于时间的速率 此API将告诉您I/O操作的总数以及总字节数。可以做到这一点,只要您定期对其进行快照以获得某个“最近”时段的差异统计数据。提供了一个特殊的混合解决方案,从WMI读取信息,并在Wind

我想显示进程列表(Windows、C++),以及它们从磁盘读写的量(KB/秒)

Windows7的资源监视器有这个功能,所以我应该也能这样做

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

您可以打电话获取每个进程的总体磁盘I/O数据-您需要跟踪增量并自己转换为基于时间的速率


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

可以做到这一点,只要您定期对其进行快照以获得某个“最近”时段的差异统计数据。提供了一个特殊的混合解决方案,从WMI读取信息,并在Windows控制台中持续显示信息。尽管有奇怪的语言组合,但我认为它是一个很好的例子,说明如何获得所需的信息(当然,它完全可以在C++中重新编码它)。

如果这不能使你在那里,你可能需要挖掘并写一个WMI查询。为您提供所有IO操作,包括网络?这为您提供了磁盘i/o、网络i/o和其他,如串行i/o。我认为事件跟踪(ETW)是唯一的方法。。。但像样的ETW示例非常稀少。同样,所有IO操作的总数(与GetProcessIoCounters()相同)