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


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

Создает полный путь счетчика с использованием элементов, указанных в структуре PDH_COUNTER_PATH_ELEMENTS .

Синтаксис

PDH_FUNCTION PdhMakeCounterPathA(
  [in]      PPDH_COUNTER_PATH_ELEMENTS_A pCounterPathElements,
  [out]     LPSTR                        szFullPathBuffer,
  [in, out] LPDWORD                      pcchBufferSize,
  [in]      DWORD                        dwFlags
);

Параметры

[in] pCounterPathElements

Структура PDH_COUNTER_PATH_ELEMENTS , содержащая элементы, используемые для создания пути. Требуются только члены szObjectName и szCounterName , остальные являются необязательными.

Если элемент имени экземпляра имеет значение NULL, путь не будет содержать ссылку на экземпляр, а члены szParentInstance и dwInstanceIndex будут игнорироваться.

[out] szFullPathBuffer

Буфер, выделенный вызывающим объектом, который получает путь счетчика, заканчивающийся null. Максимальная длина пути счетчика составляет PDH_MAX_COUNTER_PATH. Установите значение NULL , если pcchBufferSize равно нулю.

[in, out] pcchBufferSize

Размер буфера szFullPathBuffer в TCHAR. Если значение равно нулю при входе, функция возвращает PDH_MORE_DATA и задает для этого параметра требуемый размер буфера. Если буфер больше требуемого размера, функция задает для этого параметра фактический размер используемого буфера. Если указанный размер входных данных больше нуля, но меньше требуемого размера, не следует полагаться на возвращаемый размер для перераспределения буфера.

[in] dwFlags

Формат входных и выходных значений счетчиков. Можно указать одно из следующих значений.

Значение Значение
PDH_PATH_WBEM_RESULT
Преобразует путь PDH в формат класса WMI и имени свойства.
PDH_PATH_WBEM_INPUT
Преобразует класс WMI и имя свойства в путь PDH.
0
Возвращает путь в формате PDH, например \\computer\object(parent/instance#index)\counter.

Возвращаемое значение

Если функция выполняется успешно, она возвращает ERROR_SUCCESS.

Если функция завершается ошибкой, возвращаемым значением является системный код ошибки или код ошибки PDH. Ниже приведены возможные значения.

Код возврата Описание
PDH_MORE_DATA
Буфер szFullPathBuffer слишком мал, чтобы содержать имя счетчика. Это возвращаемое значение ожидается, если pcchBufferSize равно нулю на входе. Если указанный размер входных данных больше нуля, но меньше требуемого размера, не следует полагаться на возвращаемый размер для перераспределения буфера.
PDH_INVALID_ARGUMENT
Параметр недопустим или неправильно отформатирован. Например, в некоторых выпусках эта ошибка может возникнуть, если указанный размер входных данных больше нуля, но меньше требуемого размера.

Комментарии

Эту функцию следует вызывать дважды: первый раз, чтобы получить требуемый размер буфера (задайте для параметра szFullPathBufferзначение NULL , а pcchBufferSize — 0), а второй раз — для получения данных.

Примечание

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

Требования

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

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

PDH_COUNTER_PATH_ELEMENTS

PdhParseCounterPath