如何使用Win32_PerfRawData_Tcpip_NetworkInterface类来获取C ++中的当前带宽

时间:2010-11-15 11:30:12

标签: c++ visual-c++ performancecounter

我想如何使用Win32_PerfRawData_Tcpip_NetworkInterface类来获取当前带宽。 我想从一开始就知道。我正在使用xp,Microsoft Visual C ++ 2005 Express Edition。我没有得到如何。

3 个答案:

答案 0 :(得分:1)

您可能会发现使用Performance Counters API直接获取所需数据更容易,而不是通过WMI。分步说明是here

  

创建查询并添加后   反击它,打电话给   PdhCollectQueryData函数来   检索所有的当前原始数据   查询中的计数器。

     

许多计数器,例如费率计,   需要两个数据样本来计算   格式化的数据值。 PDH坚持认为   当前样本的数据和   以前收集的样本。该   以下程序介绍了如何操作   收集需要的计数器值   两个样本来计算可显示的   值。

这两个API都很复杂,这里没有简单的方法。

答案 1 :(得分:0)

Accessing Performance Data from C++上的此链接可能就是您要找的内容。

答案 2 :(得分:0)

你应该使用* Win32_PerfFormattedData_Tcpip_NetworkInterface *代替,Raw计数器需要在使用之前进行处理,这是一个非常重要的任务。

以下属性可能会引起关注:

BytesReceivedPerSec,BytesSentPerSec,CurrentBandwidth(计算利用率),BytesTotalPerSec