Función PdhEnumMachinesW (pdh.h)

Devuelve una lista de los nombres de equipo asociados a contadores en un archivo de registro. Los nombres de equipo se especificaron al agregar contadores a la consulta o al llamar a la función PdhConnectMachine . Los equipos enumerados incluyen los que están conectados actualmente y en línea, además de los que están sin conexión o que no devuelven datos de rendimiento.

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

Sintaxis

PDH_FUNCTION PdhEnumMachinesW(
  [in]      LPCWSTR szDataSource,
  [out]     PZZWSTR mszMachineList,
  [in, out] LPDWORD pcchBufferSize
);

Parámetros

[in] szDataSource

Cadena terminada en NULL que especifica el nombre de un archivo de registro. La función enumera los nombres de los equipos cuyos datos de contador están en el archivo de registro. Si es NULL, la función enumera la lista de equipos que se especificaron al agregar contadores a una consulta en tiempo real o al llamar a la función PdhConnectMachine .

[out] mszMachineList

Búfer asignado por el autor de la llamada para recibir la lista de cadenas terminadas en null que contienen los nombres de equipo. La lista finaliza con dos caracteres de terminador NULL. Se establece en NULL si pcchBufferLength es cero.

[in, out] pcchBufferSize

Tamaño del búfer mszMachineNameList , 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.

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 mszMachineNameList es demasiado pequeño para contener todos los datos. 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_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 mszMachineNameList en NULL y pcchBufferLength en 0) y la segunda vez para obtener los datos.

Nota

El encabezado pdh.h define PdhEnumMachines 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

PdhConnectMachine

PdhEnumMachinesH