Функция PdhAddEnglishCounterW (pdh.h)

Добавляет в запрос указанный не зависящий от языка счетчик.

Синтаксис

PDH_FUNCTION PdhAddEnglishCounterW(
  [in]  PDH_HQUERY   hQuery,
  [in]  LPCWSTR      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