不一定。按Microsoft当前Windows桌面文档描述,在PDH多计数器查询中,PdhCollectQueryData可能在某个实例不存在时仍返回ERROR_SUCCESS;这只代表该次查询的聚合调用没有以错误返回,不能推导出每个计数器都有数据。适用条件是使用PdhCollectQueryData对包含多个计数器的query做采样,并且关心具体实例;若只有一个不存在的实例,结果可能是PDH_NO_DATA。

观察时应保留query组成:哪些计数器、对象、实例名、路径本地化形式,以及采样发生在哪个时点。调用返回后,对每个感兴趣的计数器分别取原始值或格式化值,并查看对应状态。缺少实例时不要把值填0,也不要把缺数据直接判断为CPU或内存故障。路径本地化差异也可能造成“找不到实例”的观感,需要与聚合成功、逐项存在性分开记录。
判断可分三层:第一层看PdhCollectQueryData的返回;第二层看逐项获取是否成功、状态是否有效;第三层才把有效值用于性能判断。若顶层返回ERROR_SUCCESS但某一项无实例或状态不可用,应把该项标为缺失,不参与均值、阈值或故障结论;若整个查询返回PDH_NO_DATA,也不能据此断言硬件损坏,只能说明本次没有可用的计数器数据。只有逐项都有有效数据,才进入数值解释,并注明采样时点与query组成。
风险主要有三类:把聚合成功误写成每项可用;用0填充缺失值,污染统计;把采集层问题误判成CPU或内存硬件故障。另一个风险是混用不同采样时点或不同实例路径,使比较失去前提。
下一步,先核对已有query组成和采样时点记录,再逐项读取原始值或格式化值及状态;对缺失项做标注,检查实例名和路径本地化是否一致,必要时只读核对已有记录,不提权重建全局计数器。把聚合返回、逐项存在性和数值解释分开写进记录。只有在逐项数据有效且边界清楚时,才讨论性能变化;否则应保留为采集待确认状态。
和平区台式电脑用户可拨400-877-9605,先整理query组成、采样时点和逐项状态。电脑快修网提供信息展示与第三方维修对接,具体地址、电脑侧检查是否支持及安排需当次核实,启用范围不代表即时履约。