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


Функция 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 и получите доступ к члену dwUserDataструктуры 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 не сообщает об ошибке. Вместо этого он возвращает ERROR_SUCCESS. Причина такого поведения заключается в том, что неизвестно, указан ли несуществующий экземпляр счетчика или он будет существовать, но еще не создан.

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

Примеры

Пример см. в разделе Просмотр счетчиков производительности или Чтение данных производительности из файла журнала.

Примечание

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

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header pdh.h
Библиотека Pdh.lib
DLL Pdh.dll

См. также раздел

PdhAddEnglishCounter

PdhBrowseCounters

PdhMakeCounterPath

PdhOpenQuery

PdhRemoveCounter