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


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

Извлекает имя объекта по умолчанию. Это имя можно использовать для задания начального выбора объекта в диалоговом окне Обзор счетчика.

Чтобы использовать дескриптора для источников данных, используйте функцию PdhGetDefaultPerfObjectH .

Синтаксис

PDH_FUNCTION PdhGetDefaultPerfObjectA(
  [in]      LPCSTR  szDataSource,
  [in]      LPCSTR  szMachineName,
  [out]     LPSTR   szDefaultObjectName,
  [in, out] LPDWORD pcchBufferSize
);

Параметры

[in] szDataSource

Должно иметь значение NULL.

Если указать файл журнала, параметр szDefaultObjectNameбудет пустой строкой.

[in] szMachineName

Строка, завершающаяся значением NULL, указывающая имя компьютера, используемого для проверки имени объекта. Если значение РАВНО NULL, для проверки имени используется локальный компьютер.

[out] szDefaultObjectName

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

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

[in, out] pcchBufferSize

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

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

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

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

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

Комментарии

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

Примечание

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

Требования

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

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

PdhGetDefaultPerfCounter

PdhGetDefaultPerfObjectH