C++ 如何使用Win32_PerfRawData_Tcpip_NetworkInterface类以C++;

C++ 如何使用Win32_PerfRawData_Tcpip_NetworkInterface类以C++;,c++,visual-c++,performancecounter,C++,Visual C++,Performancecounter,我想知道如何使用Win32_PerfRawData_Tcpip_NetworkInterface类来获取当前带宽。 我想从一开始就知道。我正在使用XP,微软Visual C++ 2005 Express版。我没有得到如何。< P>你可以发现直接使用API来获得所需的数据,而不是通过WMI更容易。一步一步的指导是 创建查询并添加 对它的计数器,调用 PdhCollectQueryData函数用于 检索所有数据的当前原始数据 查询中的计数器 许多计数器,例如速率计数器, 需要两个数据样本进行计算 格

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

< P>你可以发现直接使用API来获得所需的数据,而不是通过WMI更容易。一步一步的指导是

创建查询并添加 对它的计数器,调用 PdhCollectQueryData函数用于 检索所有数据的当前原始数据 查询中的计数器

许多计数器,例如速率计数器, 需要两个数据样本进行计算 格式化的数据值。PDH维护 当前样本的数据和 先前采集的样本。这个 以下过程描述了如何 收集需要的计数器值 两个示例以计算一个可显示的 价值观


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

您应该使用*Win32\u PerfFormattedData\u Tcpip\u NetworkInterface*取而代之的是,原始计数器在使用前需要进行处理,这是一项非常重要的任务

以下财产可能会引起兴趣:


BytesReceivedPerSec、BytesEntpersec、CurrentBandwidth(用于计算利用率)、BytesTotalPerSec

通过“使用”我想你的意思是“消费”而不是“提供”?我有一个使用性能计数器的代码,但我得到一个错误,“PdhCollectQueryData failed\n”ie。没有数据。我在系统中勾选了“性能”,我们得到了“\\networkinterface(%s)\\Current Bandwidth”,但为什么会出现这个错误。请帮忙。thanksPWSTR COUNTER_PATH=“\\Network Interface(NVIDIA nForce Networking Controller-PacketScheduler Miniport)\\ Current Bandwidth”我仍在使用我还没有得到我想要的上传和下载带宽。使用性能计数器我只得到10000000作为值。请告诉我如何获得上传和下载带宽。谢谢