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


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

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

Эта функция идентична функции PdhExpandWildCardPath , за исключением того, что она поддерживает использование дескрипторов для источников данных.

Синтаксис

PDH_FUNCTION PdhExpandWildCardPathHA(
  [in]      PDH_HLOG hDataSource,
  [in]      LPCSTR   szWildCardPath,
  [out]     PZZSTR   mszExpandedPathList,
  [in, out] LPDWORD  pcchPathListLength,
  [in]      DWORD    dwFlags
);

Параметры

[in] hDataSource

Обработка источника данных, возвращаемого функцией PdhBindInputDataSource .

[in] szWildCardPath

Строка, завершающаяся значением NULL, указывающая путь счетчика для развертывания. Максимальная длина пути счетчика составляет PDH_MAX_COUNTER_PATH.

Если hDataSource является источником данных в режиме реального времени, функция выполняет поиск совпадений на компьютере, указанном в пути. Если путь не указывает компьютер, функция выполняет поиск на локальном компьютере.

[out] mszExpandedPathList

Буфер, выделенный вызывающим объектом, который получает список путей счетчиков со значением NULL, которые соответствуют спецификации подстановочных знаков в szWildCardPath. Список завершается двумя символами NULL . Установите значение NULL , если pcchPathListLength равно нулю.

[in, out] pcchPathListLength

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

Примечание Необходимо добавить его к требуемому размеру в Windows XP.
 

[in] dwFlags

Флаги, указывающие, какие подстановочные знаки не следует разворачивать. Можно указать один или несколько флагов.

Значение Значение
PDH_NOEXPANDCOUNTERS
Не разворачивайте имя счетчика, если путь содержит подстановочный знак для имени счетчика.
PDH_NOEXPANDINSTANCES
Не разворачивайте имя экземпляра, если путь содержит подстановочный знак для родительского экземпляра, имени экземпляра или индекса экземпляра.
PDH_REFRESHCOUNTERS
Обновите список счетчиков.

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

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

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

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

Комментарии

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

PdhExpandWildCardPathH отличается от PdhExpandCounterPath следующим образом:

  1. Позволяет управлять развернутыми подстановочными знаками.
  2. Содержимое файла журнала можно использовать в качестве источника имен счетчиков.
Общий формат пути счетчика выглядит следующим образом:

\computer\object(parent/instance#index)\counter

Родительские компоненты, компоненты экземпляра, индекса и счетчика пути счетчика могут содержать допустимое имя или подстановочный знак. Компоненты компьютера, родительского компонента, экземпляра и индекса не являются обязательными для всех счетчиков.

Ниже приведен список возможных форматов.

  • \\computer\object(parent/instance#index)\counter
  • \\computer\object(parent/instance)\counter
  • \\computer\object(instance#index)\counter
  • \\computer\object(instance)\counter
  • \\computer\object\counter
  • \object(parent/instance#index)\counter
  • \object(parent/instance)\counter
  • \object(instance#index)\counter
  • \object(instance)\counter
  • \object\counter
Используйте звездочку (*) в качестве подстановочного знака, например \object(*)\counter.

Если в родительском имени указан подстановочный знак, будут возвращены все экземпляры указанного объекта, соответствующие полям экземпляра и счетчика. Например, \object(*/instance)\counter.

Если в имени экземпляра указан подстановочный знак, все экземпляры указанного объекта и родительского объекта будут возвращены, если все имена экземпляров, соответствующие указанному индексу, соответствуют подстановочным знакам. Например, \object(parent/*)\counter.

Если в имени счетчика указан подстановочный знак, возвращаются все счетчики указанного объекта.

Поддерживаются совпадения со строкой пути частичного счетчика (например, "pro*").

До Windows Vista: Частичные совпадения с подстановочными знаками не поддерживаются.

Примечание

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

Требования

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

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

Функция PdhBindInputDataSourceAPdhEnumObjectItemsHA функцияPdhEnumObjectsHA функцияPdhExpandCounterPathA