PdhAddEnglishCounterA 函数 (pdh.h)
将指定的非特定语言计数器添加到查询。
语法
PDH_FUNCTION PdhAddEnglishCounterA(
[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 结构的 dwQueryUserData 成员。
[out] phCounter
添加到查询的计数器的句柄。 可能需要在后续调用中引用此句柄。
返回值
如果函数成功,则返回ERROR_SUCCESS。
如果函数失败,则返回值为 系统错误代码 或 PDH 错误代码。 下面是可能的值。
返回代码 | 说明 |
---|---|
|
无法分析或解释计数器路径。 |
|
无法在计算机或日志文件中找到指定的计数器。 |
|
计数器路径为空。 |
|
路径不包含计算机名称,并且函数无法检索本地计算机名称。 |
|
在计算机上或日志文件中找不到指定的对象。 |
|
无法确定要用于此计数器的计算函数。 |
|
一个或多个参数无效。 |
|
查询句柄无效。 |
|
无法分配完成函数所需的内存。 |
注解
此函数提供了一种与语言无关的方式,用于向查询添加性能计数器。 相反,必须在 PdhAddCounter 函数中指定的计数器路径进行本地化。
如果指定的计数器实例尚不存在, 则 PdhAddEnglishCounter 不会报告错误条件。 而是返回ERROR_SUCCESS。 此行为的原因是不知道是否已指定不存在的计数器实例,或者是否存在计数器实例,但尚未创建。
若要从查询中删除计数器,请使用 PdhRemoveCounter 函数。
- 进行查询
- 将 PdhAddEnglishCounter 与包含通配符的字符串一起使用
- 在 PdhAddEnglishCounter 返回的计数器句柄上使用 PdhGetCounterInfo 获取 (szFullPath.) 此字符串仍包含通配符,但非通配符部分现已本地化。
- 使用 PdhExpandWildCardPath 展开通配符。
- 在生成的每个路径上使用 PdhAddCounter
注意
pdh.h 标头将 PdhAddEnglishCounter 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名的使用与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | pdh.h |
Library | Pdh.lib |
DLL | Pdh.dll |