PdhCollectQueryData 函数 (pdh.h)

收集指定查询中所有计数器的当前原始数据值,并更新每个计数器的状态代码。

语法

PDH_FUNCTION PdhCollectQueryData(
  [in, out] PDH_HQUERY hQuery
);

参数

[in, out] hQuery

要为其收集数据的查询的句柄。 PdhOpenQuery 函数返回此句柄。

返回值

如果函数成功,则返回ERROR_SUCCESS。 否则,函数将返回 系统错误代码PDH 错误代码

下面是可能的值。

返回代码 说明
PDH_INVALID_HANDLE
查询句柄无效。
PDH_NO_DATA
查询当前不包含任何计数器。 查询可能不包含数据,因为用户未使用提升的令牌运行, (请参阅 受限用户访问支持) 。

注解

如果要收集查询中计数器的计数器数据,请调用此函数。 PDH 存储当前和上一个集合的原始计数器值。

如果要检索当前原始计数器值,请调用 PdhGetRawCounterValue 函数。 如果要计算计数器值的可显示值,请调用 PdhGetFormattedCounterValue 函数。 如果计数器路径包含实例名称的通配符,请分别调用 PdhGetRawCounterArrayPdhGetFormattedCounterArray 函数。

如果仅为一个计数器实例中的数据调用 PdhCollectQueryData 并且计数器实例不存在,则函数将返回PDH_NO_DATA。 但是,如果查询来自多个计数器的数据, PdhCollectQueryData 可能会返回ERROR_SUCCESS,即使其中一个计数器实例尚不存在。 这是因为不知道指定的计数器实例是否不存在,或者它是否存在但尚未创建。 在这种情况下,请为每个感兴趣的计数器实例调用 PdhGetRawCounterValuePdhGetFormattedCounterValue ,以确定它们是否存在。

下面显示了从 Visual Basic 调用此函数的语法。

PdhCollectQueryData(
  ByVal QueryHandle as Long  
)
as Long

示例

有关示例,请参阅 浏览性能计数器从日志文件读取性能数据

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 pdh.h
Library Pdh.lib
DLL Pdh.dll

另请参阅

PdhGetFormattedCounterValue

PdhGetRawCounterValue