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


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

Анализирует элементы пути счетчика и сохраняет результаты в структуре PDH_COUNTER_PATH_ELEMENTS.

Синтаксис

PDH_FUNCTION PdhParseCounterPathA(
  [in]      LPCSTR                       szFullPathBuffer,
  [out]     PPDH_COUNTER_PATH_ELEMENTS_A pCounterPathElements,
  [in, out] LPDWORD                      pdwBufferSize,
            DWORD                        dwFlags
);

Параметры

[in] szFullPathBuffer

null-terminated string, содержащую путь счетчика для синтаксического анализа. Максимальная длина пути счетчика составляет PDH_MAX_COUNTER_PATH.

[out] pCounterPathElements

Выделенный вызывающим буфером, который получает PDH_COUNTER_PATH_ELEMENTS структуру. Структура содержит указатели на отдельные строковые элементы пути, на которые ссылается параметр szFullPathBuffer. Функция добавляет строки в конец структуры PDH_COUNTER_PATH_ELEMENTS. Выделенный буфер должен быть достаточно большим для структуры и строк. Установите значение NULL, если pdwBufferSize равно нулю.

[in, out] pdwBufferSize

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

dwFlags

Скрытный. Должно быть равно нулю.

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

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

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

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

Замечания

Эту функцию следует вызывать дважды, при первом получении требуемого размера буфера (присвойте pCounterPathElements значение NULL и pdwBufferSize 0), а второй раз, чтобы получить данные.

Заметка

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

Требования

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

См. также

PDH_COUNTER_PATH_ELEMENTS

PdhMakeCounterPath