Función PdhGetFormattedCounterValue (pdh.h)

Calcula un valor que se puede mostrar para el contador especificado.

Sintaxis

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

Parámetros

[in] hCounter

Identificador del contador para el que desea calcular un valor que se puede mostrar. La función PdhAddCounter devuelve este identificador.

[in] dwFormat

Determina el tipo de datos del valor con formato. Especifique uno de los valores siguientes.

Valor Significado
PDH_FMT_DOUBLE
Devuelve datos como un punto flotante de precisión doble real.
PDH_FMT_LARGE
Devuelve datos como un entero de 64 bits.
PDH_FMT_LONG
Devuelve datos como un entero largo.
 

Puede usar el operador OR inclusivo bit a bit (|) para combinar el tipo de datos con uno de los siguientes factores de escalado.

Valor Significado
PDH_FMT_NOSCALE
No aplique el factor de escalado predeterminado del contador.
PDH_FMT_NOCAP100
Los valores de contador mayores que 100 (por ejemplo, valores de contador que miden la carga del procesador en equipos multiprocesador) no se restablecerán a 100. El comportamiento predeterminado es que los valores de contador están limitados en un valor de 100.
PDH_FMT_1000
Multiplique el valor real en 1000.

[out] lpdwType

Recibe el tipo de contador. Para obtener una lista de tipos de contadores, vea la sección Tipos de contadores del Kit de implementación de Windows Server 2003. Este parámetro es opcional.

[out] pValue

Estructura PDH_FMT_COUNTERVALUE que recibe el valor del contador.

Valor devuelto

Si la función se realiza correctamente, devuelve ERROR_SUCCESS.

Si se produce un error en la función, el valor devuelto es un código de error del sistema o un código de error PDH. A continuación se muestran los valores posibles.

Código devuelto Descripción
PDH_INVALID_ARGUMENT
Un parámetro no es válido o tiene un formato incorrecto.
PDH_INVALID_DATA
El contador especificado no contiene datos válidos ni un código de estado correcto.
PDH_INVALID_HANDLE
El identificador de contador no es válido.

Comentarios

Los datos del contador están bloqueados (protegidos) durante la llamada a PdhGetFormattedCounterValue para evitar cambios durante el procesamiento de la llamada. Al leer los datos (llamando correctamente a esta función), se borra la marca de cambio de datos para el contador.

Algunos contadores, como los contadores de velocidad, requieren dos valores de contador para calcular un valor que se puede mostrar. En este caso, debe llamar a PdhCollectQueryData dos veces antes de llamar a PdhGetFormattedCounterValue. Para obtener más información, consulte Recopilación de datos de rendimiento.

Si la instancia de contador especificada no existe, el método devolverá PDH_INVALID_DATA y establecerá el miembro CStatus de la estructura PDH_FMT_COUNTERVALUE en PDH_CSTATUS_NO_INSTANCE.

Antes de Windows Server 2003: La llamada de formato puede producir un error en los contadores que requieren solo un valor único cuando no se encuentra la instancia. Intente llamar de nuevo a la consulta y dar formato a las llamadas. Si se produce un error en la llamada de formato la segunda vez, no se encuentra la instancia. Como alternativa, puede llamar a la función PdhEnumObjects con la opción de actualización establecida en TRUE para actualizar las instancias del contador antes de consultar y dar formato a los datos del contador.

Ejemplos

Para obtener un ejemplo, vea Examinar contadores de rendimiento o Leer datos de rendimiento de un archivo de registro.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado pdh.h
Library Pdh.lib
Archivo DLL Pdh.dll

Consulte también

PdhCollectQueryData

PdhGetRawCounterValue

PdhSetCounterScaleFactor