Функция 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
Определяет тип данных форматированного значения. Укажите одно из следующих значений.
Для объединения типа данных с одним из следующих факторов масштабирования можно использовать побитовый оператор OR (|).
[out] lpdwType
Получает тип счетчика. Список типов счетчиков см. в разделе Типы счетчиков комплекта развертывания Windows Server 2003. Этот параметр является необязательным.
[out] pValue
Структура PDH_FMT_COUNTERVALUE , получающая значение счетчика.
Возвращаемое значение
Если функция выполняется успешно, она возвращает ERROR_SUCCESS.
Если функция завершается ошибкой, возвращаемым значением является системный код ошибки или код ошибки PDH. Ниже приведены возможные значения.
Код возврата | Описание |
---|---|
|
Параметр недопустим или неправильно отформатирован. |
|
Указанный счетчик не содержит допустимых данных или кода успешного состояния. |
|
Недопустимый дескриптор счетчика. |
Комментарии
Данные счетчика блокируются (защищаются) на время вызова 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 |