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


Функция 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 [только классические приложения]
Целевая платформа Windows
Header pdh.h
Библиотека Pdh.lib
DLL Pdh.dll

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

PdhAddCounter

PdhBrowseCounters

PdhMakeCounterPath

PdhOpenQuery

PdhRemoveCounter