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 [仅限桌面应用]
目标平台 Windows
标头 pdh.h
Library Pdh.lib
DLL Pdh.dll

另请参阅

PdhAddEnglishCounter

PdhBrowseCounters

PdhMakeCounterPath

PdhOpenQuery

PdhRemoveCounter