Compartir a través de


Función PdhEnumObjectsA (pdh.h)

Devuelve una lista de objetos disponibles en el equipo especificado o en el archivo de registro especificado.

Para usar identificadores para orígenes de datos, use la función PdhEnumObjectsH.

Sintaxis

PDH_FUNCTION PdhEnumObjectsA(
  [in]      LPCSTR  szDataSource,
  [in]      LPCSTR  szMachineName,
  [out]     PZZSTR  mszObjectList,
  [in, out] LPDWORD pcchBufferSize,
  [in]      DWORD   dwDetailLevel,
  [in]      BOOL    bRefresh
);

Parámetros

[in] szDataSource

cadena terminada en nullque especifica el nombre del archivo de registro usado para enumerar los objetos de rendimiento. Si null, la función usa el equipo especificado en

el parámetro szMachineName para enumerar los nombres.

[in] szMachineName

cadena terminada en Nullque especifica el nombre del equipo usado para enumerar los objetos de rendimiento.

Incluya las barras diagonales iniciales en el nombre del equipo, por ejemplo, \nombreDeEquipo.

Si el parámetro szDataSource es NULL, puede establecer szMachineName en NULL para especificar el equipo local.

[out] mszObjectList

Búfer asignado por el autor de la llamada que recibe la lista de nombres de objeto. Cada nombre de objeto de esta lista finaliza mediante un carácter null. La lista finaliza con dos caracteres nulos-terminador. Establézcalo en null si el parámetro pcchBufferLength es cero.

[in, out] pcchBufferSize

Tamaño del búfer de mszObjectList, en TCHAR. Si es cero en la entrada, la función devuelve PDH_MORE_DATA y establece este parámetro en el tamaño de búfer necesario. Si el búfer es mayor que el tamaño necesario, la función establece este parámetro en el tamaño real del búfer que se usó. Si el tamaño especificado en la entrada es mayor que cero pero menor que el tamaño necesario, no debe confiar en el tamaño devuelto para reasignar el búfer.

Windows XP: Agregar uno al tamaño de búfer necesario.

[in] dwDetailLevel

Nivel de detalle de los elementos de rendimiento que se van a devolver. Se devolverán todos los elementos que son del nivel de detalle especificado o menos (los niveles se muestran en orden creciente). Este parámetro puede ser uno de los siguientes valores.

Valor Significado
PERF_DETAIL_NOVICE
Nivel de detalle del usuario novato.
PERF_DETAIL_ADVANCED
Nivel de detalle de usuario avanzado.
PERF_DETAIL_EXPERT
Nivel de detalle del usuario experto.
PERF_DETAIL_WIZARD
Nivel de detalle del diseñador del sistema.

[in] bRefresh

Indica si la lista de objetos almacenados en caché se debe actualizar automáticamente. Especifique uno de los valores siguientes.

Si llama a esta función dos veces, una vez para obtener el tamaño de la lista y una segunda vez para obtener la lista real, establezca este parámetro en TRUE en la primera llamada y FALSE en la segunda llamada. Si ambas llamadas son TRUE, la segunda llamada también puede devolver PDH_MORE_DATA porque los datos del objeto pueden haber cambiado entre llamadas.

Valor Significado
TRUE
La caché de objetos se actualiza automáticamente antes de que se devuelvan los objetos.
FALSE
No actualice automáticamente la memoria caché.

Valor devuelto

Si la función se ejecuta 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_MORE_DATA
El búfer mszObjectList es demasiado pequeño para contener la lista de objetos. Este valor devuelto se espera si pcchBufferLength es cero en la entrada. Si el tamaño especificado en la entrada es mayor que cero pero menor que el tamaño necesario, no debe confiar en el tamaño devuelto para reasignar el búfer.
PDH_CSTATUS_NO_MACHINE
El equipo especificado está sin conexión o no está disponible.
PDH_CSTATUS_NO_OBJECT
No se encontró el objeto especificado.
PDH_INVALID_ARGUMENT
Un parámetro no es válido. Por ejemplo, en algunas versiones podría recibir este error si el tamaño especificado en la entrada es mayor que cero pero menor que el tamaño necesario.

Observaciones

Debe llamar a esta función dos veces, la primera vez que obtenga el tamaño de búfer necesario (establezca mszObjectList en NULL y pcchBufferLength en 0) y la segunda vez para obtener los datos.

Nota

El encabezado pdh.h define PdhEnumObjects como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.

Requisitos

Requisito Valor
cliente mínimo admitido Windows XP [solo aplicaciones de escritorio]
servidor mínimo admitido Windows Server 2003 [solo aplicaciones de escritorio]
de la plataforma de destino de Windows
encabezado de pdh.h
biblioteca de Pdh.lib
DLL de Pdh.dll

Consulte también

PdhEnumObjectItems

PdhEnumObjectsH