Функция PdhEnumObjectsHA (pdh.h)
Возвращает список объектов, доступных на указанном компьютере или в указанном файле журнала.
Эта функция идентична Функции PdhEnumObjects, за исключением того, что она поддерживает использование дескрипторов для источников данных.
Синтаксис
PDH_FUNCTION PdhEnumObjectsHA(
[in] PDH_HLOG hDataSource,
[in] LPCSTR szMachineName,
[out] PZZSTR mszObjectList,
[in, out] LPDWORD pcchBufferSize,
[in] DWORD dwDetailLevel,
[in] BOOL bRefresh
);
Параметры
[in] hDataSource
Дескриптор источника данных, возвращаемого функцией PdhBindInputDataSource .
[in] szMachineName
Строка, завершающаяся значением NULL, которая указывает имя компьютера, используемого для перечисления объектов производительности.
Включите в имя компьютера символы косой черты, например \computername.
Если szDataSource имеет значение NULL, можно задать для szMachineNameзначение NULL , чтобы указать локальный компьютер.
[out] mszObjectList
Выделенный вызывающим объектом буфер, который получает список имен объектов. Каждое имя объекта в этом списке заканчивается символом NULL . Список завершается двумя символами конца null. Установите значение NULL , если pcchBufferLength равно нулю.
[in, out] pcchBufferSize
Размер буфера mszObjectList в TCHAR. Если входные данные равны нулю, функция возвращает PDH_MORE_DATA и задает для этого параметра требуемый размер буфера. Если размер буфера превышает требуемый размер, функция задает для этого параметра фактический размер использованного буфера. Если указанный размер входных данных больше нуля, но меньше требуемого размера, не следует полагаться на возвращаемый размер для перераспределения буфера.
Windows XP: Добавьте его к требуемому размеру буфера.
[in] dwDetailLevel
Уровень детализации возвращаемых элементов производительности. Будут возвращены все элементы, которые имеют указанный уровень детализации или меньше (уровни перечислены в порядке увеличения). Этот параметр может принимать одно из указанных ниже значений.
[in] bRefresh
Указывает, следует ли автоматически обновлять кэшированный список объектов. Укажите одно из следующих значений.
Если вы вызываете эту функцию дважды, один раз для получения размера списка и второй раз, чтобы получить фактический список, установите для этого параметра значение TRUE в первом вызове и FALSE во втором вызове. Если оба вызова имеют значение TRUE, второй вызов также может возвращать PDH_MORE_DATA, так как данные объекта могли изменяться между вызовами.
Значение | Значение |
---|---|
|
Кэш объектов автоматически обновляется перед возвратом объектов. |
|
Не обновляйте кэш автоматически. |
Возвращаемое значение
Если функция завершается успешно, она возвращает ERROR_SUCCESS.
Если функция завершается сбоем, возвращаемое значение представляет собой код системной ошибки или код ошибки PDH. Ниже приведены возможные значения.
Код возврата | Описание |
---|---|
|
Буфер mszObjectList слишком мал для хранения списка объектов. Это возвращаемое значение ожидается, если pcchBufferLength равно нулю на входных данных. Если указанный размер входных данных больше нуля, но меньше требуемого размера, не следует полагаться на возвращаемый размер для перераспределения буфера. |
|
Указанный компьютер находится в автономном режиме или недоступен. |
|
Не удалось найти указанный объект . |
|
Недействительный параметр. Например, в некоторых выпусках эта ошибка может возникнуть, если указанный размер входных данных больше нуля, но меньше требуемого размера. |
Комментарии
Эту функцию следует вызывать дважды: первый раз, чтобы получить необходимый размер буфера (задайте для mszObjectListзначение NULL , а pcchBufferLength — 0), а второй раз — для получения данных.
Примечание
Заголовок pdh.h определяет PdhEnumObjectsH в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | pdh.h |
Библиотека | Pdh.lib |
DLL | Pdh.dll |