Función PdhEnumObjectsW (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 PdhEnumObjectsW(
  [in]      LPCWSTR szDataSource,
  [in]      LPCWSTR szMachineName,
  [out]     PZZWSTR mszObjectList,
  [in, out] LPDWORD pcchBufferSize,
  [in]      DWORD   dwDetailLevel,
  [in]      BOOL    bRefresh
);

Parámetros

[in] szDataSource

Cadena terminada en NULL que especifica el nombre del archivo de registro utilizado para enumerar los objetos de rendimiento. Si es NULL, la función usa el equipo especificado en

parámetro szMachineName para enumerar los nombres.

[in] szMachineName

Cadena terminada en NULL que 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 con un carácter NULO . La lista finaliza con dos caracteres de terminador NULL. Establezca en NULL si el parámetro pcchBufferLength es cero.

[in, out] pcchBufferSize

Tamaño del búfer 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: Agregue 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 valores siguientes.

Valor Significado
PERF_DETAIL_NOVICE
Nivel de detalle del usuario novato.
PERF_DETAIL_ADVANCED
Nivel de usuario avanzado de detalle.
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 memoria 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.

Comentarios

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 neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

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

PdhEnumObjectItems

PdhEnumObjectsH