Поделиться через


Функция 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 и перейдите к элементу dwQueryUserData структуры PDH_COUNTER_INFO.

[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.

Если экземпляр счетчика указан, который еще не существует, PdhAddEnglishCounter не сообщает об ошибке. Вместо этого он возвращает ERROR_SUCCESS. Причина этого поведения заключается в том, что неизвестно, был ли указан существующий экземпляр счетчика или будет ли он существовать, но еще не создан.

Чтобы удалить счетчик из запроса, используйте функцию PdhRemoveCounter.

Примечание Если путь счетчика содержит подстановочный знак, то части пути, отличные от подстановочных знаков, будут локализованы, но подстановочные знаки не будут развернуты перед добавлением локализованного пути счетчика в запрос. В этом случае вам потребуется использовать следующую процедуру, чтобы добавить все соответствующие имена счетчиков в запрос.
  1. Создание запроса
  2. Используйте PdhAddEnglishCounter со строкой, содержащей подстановочные знаки
  3. Используйте PdhGetCounterInfo в дескрипторе счетчика, возвращаемом PdhAddEnglishCounter, чтобы получить локализованный полный путь (szFullPath.) Эта строка по-прежнему содержит подстановочные знаки, но теперь локализованы части, не являющиеся подстановочными знаками.
  4. Используйте PdhExpandWildCardPath для расширения подстановочных знаков.
  5. Используйте PdhAddCounter на каждом из полученных путей
 

Заметка

Заголовок pdh.h определяет PdhAddEnglishCounter как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows Vista [только классические приложения]
минимальный поддерживаемый сервер Windows Server 2008 [только классические приложения]
целевая платформа Виндоус
заголовка pdh.h
библиотеки Pdh.lib
DLL Pdh.dll

См. также

PdhAddCounter

PdhBrowseCounters

PdhMakeCounterPath

PdhOpenQuery

PdhRemoveCounter