PdhAddCounterA 函数 (pdh.h)

将指定的计数器添加到查询。

语法

PDH_FUNCTION PdhAddCounterA(
  [in]  PDH_HQUERY   hQuery,
  [in]  LPCSTR       szFullCounterPath,
  [in]  DWORD_PTR    dwUserData,
  [out] PDH_HCOUNTER *phCounter
);

参数

[in] hQuery

要向其添加计数器的查询句柄。 此句柄由 PdhOpenQuery 函数返回。

[in] szFullCounterPath

包含计数器路径的以 Null 结尾的字符串。 有关计数器路径格式的详细信息,请参阅 指定计数器路径。 计数器路径的最大长度为PDH_MAX_COUNTER_PATH。

[in] dwUserData

用户定义的值。 此值将成为计数器信息的一部分。 若要稍后检索此值,请调用 PdhGetCounterInfo 函数并访问 PDH_COUNTER_INFO 结构的 dwUserData 成员。

[out] phCounter

添加到查询的计数器的句柄。 可能需要在后续调用中引用此句柄。

返回值

如果函数成功,则返回ERROR_SUCCESS。

如果函数失败,则返回值为 系统错误代码PDH 错误代码。 以下是可能的值。

返回代码 描述
PDH_CSTATUS_BAD_COUNTERNAME
无法分析或解释计数器路径。
PDH_CSTATUS_NO_COUNTER
无法在计算机或日志文件中找到指定的计数器。
PDH_CSTATUS_NO_COUNTERNAME
计数器路径为空。
PDH_CSTATUS_NO_MACHINE
路径不包含计算机名称,并且函数无法检索本地计算机名称。
PDH_CSTATUS_NO_OBJECT
无法在计算机或日志文件中找到指定的对象。
PDH_FUNCTION_NOT_FOUND
无法确定要用于此计数器的计算函数。
PDH_INVALID_ARGUMENT
一个或多个参数无效。
PDH_INVALID_HANDLE
查询句柄无效。
PDH_MEMORY_ALLOCATION_FAILURE
无法分配完成函数所需的内存。

言论

如果计数器路径包含通配符,则所有与通配符匹配的计数器名称都会添加到查询中。

如果指定了尚不存在的计数器实例,PdhAddCounter 不会报告错误条件。 而是返回ERROR_SUCCESS。 此行为的原因是,目前还不清楚是否指定了不存在的计数器实例,或者是否存在计数器实例,但尚未创建。

若要从查询中删除计数器,请使用 PdhRemoveCounter 函数。

例子

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

注意

pdh.h 标头将 PdhAddCounter 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

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

另请参阅

PdhAddEnglishCounter

PdhBrowseCounters

PdhMakeCounterPath

PdhOpenQuery

PdhRemoveCounter