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


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

Вычисляет отображаемое значение для указанного счетчика.

Синтаксис

PDH_FUNCTION PdhGetFormattedCounterValue(
  [in]  PDH_HCOUNTER          hCounter,
  [in]  DWORD                 dwFormat,
  [out] LPDWORD               lpdwType,
  [out] PPDH_FMT_COUNTERVALUE pValue
);

Параметры

[in] hCounter

Дескриптор счетчика, для которого требуется вычислить отображаемое значение. Функция PdhAddCounter возвращает этот дескриптор.

[in] dwFormat

Определяет тип данных форматированного значения. Укажите одно из следующих значений.

Значение Значение
PDH_FMT_DOUBLE
Возвращает данные в виде объекта двойной точности с плавающей запятой.
PDH_FMT_LARGE
Возвращает данные в виде 64-разрядного целого числа.
PDH_FMT_LONG
Возвращает данные в виде длинного целого числа.
 

Для объединения типа данных с одним из следующих факторов масштабирования можно использовать побитовый оператор OR (|).

Значение Значение
PDH_FMT_NOSCALE
Не применяйте коэффициент масштабирования счетчика по умолчанию.
PDH_FMT_NOCAP100
Значения счетчиков больше 100 (например, значения счетчика, измеряющего нагрузку процессора на многопроцессорных компьютерах) не будут сброшены до 100. По умолчанию значения счетчиков ограничены значением 100.
PDH_FMT_1000
Умножьте фактическое значение на 1000.

[out] lpdwType

Получает тип счетчика. Список типов счетчиков см. в разделе Типы счетчиков комплекта развертывания Windows Server 2003. Этот параметр является необязательным.

[out] pValue

Структура PDH_FMT_COUNTERVALUE , получающая значение счетчика.

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

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

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

Код возврата Описание
PDH_INVALID_ARGUMENT
Параметр недопустим или неправильно отформатирован.
PDH_INVALID_DATA
Указанный счетчик не содержит допустимых данных или кода успешного состояния.
PDH_INVALID_HANDLE
Недопустимый дескриптор счетчика.

Комментарии

Данные счетчика блокируются (защищаются) на время вызова PdhGetFormattedCounterValue , чтобы предотвратить любые изменения во время обработки вызова. Чтение данных (успешное вызов этой функции) очищает флаг измененных данных для счетчика.

Для некоторых счетчиков, таких как счетчики скорости, для вычисления отображаемого значения требуются два значения счетчика. В этом случае необходимо дважды вызвать PdhCollectQueryData перед вызовом PdhGetFormattedCounterValue. Дополнительные сведения см. в статье Сбор данных о производительности.

Если указанный экземпляр счетчика не существует, метод вернет PDH_INVALID_DATA и присвоит элементу CStatus структуры PDH_FMT_COUNTERVALUE значение PDH_CSTATUS_NO_INSTANCE.

До Windows Server 2003: Вызов формата может завершиться ошибкой для счетчиков, для которых требуется только одно значение, если экземпляр не найден. Попробуйте снова вызвать запрос и отформатировать вызовы. Если второй раз вызов формата завершается сбоем, экземпляр не найден. В качестве альтернативы можно вызвать функцию PdhEnumObjects с параметром обновления true , чтобы обновить экземпляры счетчиков перед запросом и форматированием данных счетчика.

Примеры

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

Требования

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

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

PdhCollectQueryData

PdhGetRawCounterValue

PdhSetCounterScaleFactor