我在使用性能监控 API 的 Vista 上遇到了一个奇怪的问题。我目前正在使用基于 PdhGetFormattedCounterValue() 在 XP/2k 上运行良好的代码。我开始使用 PdhExpandWildCardPath 来扩展计数器(我对整体网络统计数据感兴趣),我正在查看的计数器是:
\\网络接口(*)\\接收的字节数/秒 \\网络接口(*)\\字节发送/秒 \\Processor(_Total)\\% 处理器时间
问题是他们在第一次调用时返回 PDH_INVALID_DATA,我认为这不是问题,因为如果我再次查询它,我将开始获取数据而不会出现错误。问题是这样的——虽然处理器时间完全按照预期工作,但网络接口计数器都没有返回任何东西——一直都是 0。我使用 Perfmon 验证他们正在正常报告数据,所以我不知道可能是什么问题。我在 MS 发现了这个:
http://support.microsoft.com/?scid=kb%3Ben-us%3B287159&x=11&y=9
但我对我的任务的多语言不感兴趣,所以我认为这无关紧要。我会看看我是否能想出一些基本代码来准确显示我在做什么,但是没有返回任何奇怪的东西,而且它在 XP/2k 上工作,所以我怀疑引擎盖下发生了一些变化。谢谢!