Función PdhEnumObjectItemsHA (pdh.h)
Devuelve el contador y los nombres de instancia del objeto especificados que existen en el equipo especificado o en el archivo de registro especificado.
Esta función es idéntica a la función PdhEnumObjectItems , salvo que admite el uso de identificadores para orígenes de datos.
Sintaxis
PDH_FUNCTION PdhEnumObjectItemsHA(
[in] PDH_HLOG hDataSource,
[in] LPCSTR szMachineName,
[in] LPCSTR szObjectName,
[out] PZZSTR mszCounterList,
[in, out] LPDWORD pcchCounterListLength,
[out] PZZSTR mszInstanceList,
[in, out] LPDWORD pcchInstanceListLength,
[in] DWORD dwDetailLevel,
[in] DWORD dwFlags
);
Parámetros
[in] hDataSource
Identificador de un origen de datos devuelto por la función PdhBindInputDataSource .
[in] szMachineName
Cadena terminada en NULL que especifica el nombre del equipo que contiene los nombres de contador e instancia que desea enumerar.
Incluya las barras diagonales iniciales en el nombre del equipo, por ejemplo, \computername.
Si el parámetro szDataSource es NULL, puede establecer szMachineName en NULL para especificar el equipo local.
[in] szObjectName
Cadena terminada en NULL que especifica el nombre del objeto cuyos nombres de contador e instancia desea enumerar.
[out] mszCounterList
Búfer asignado por el autor de la llamada que recibe una lista de nombres de contador terminados en null proporcionados por el objeto especificado. La lista contiene nombres de contador únicos. La lista finaliza con dos caracteres NULL . Se establece en NULL si el parámetro pcchCounterListLength es cero.
[in, out] pcchCounterListLength
Tamaño del búfer mszCounterList , en TCHAR. Si hay cero en la entrada y el objeto, 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.
[out] mszInstanceList
Búfer asignado por el autor de la llamada que recibe una lista de nombres de instancia terminados en null proporcionados por el objeto especificado. La lista contiene nombres de instancia únicos. La lista finaliza con dos caracteres NULL . Se establece en NULL si el parámetro pcchInstanceListLength es cero.
[in, out] pcchInstanceListLength
Tamaño del búfer mszInstanceList , en TCHAR. Si hay cero en la entrada y el objeto, 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.
Si el objeto especificado no admite instancias de variables, el valor devuelto será cero. Si el objeto especificado admite instancias de variables, pero actualmente no tiene ninguna instancia, el valor devuelto es 2, que es el tamaño de una cadena de lista de MULTI_SZ vacía.
[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.
[in] dwFlags
Este parámetro debe ser cero.
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 |
---|---|
|
Uno de los búferes es demasiado pequeño para contener la lista de nombres. Este valor devuelto se espera si pcchCounterListLength o pcchInstanceListLength 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. |
|
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. |
|
No se puede asignar memoria para admitir esta función. |
|
El equipo especificado está sin conexión o no está disponible. |
|
No se encontró el objeto especificado en el equipo especificado ni en el archivo de registro especificado. |
Comentarios
Debe llamar a esta función dos veces, la primera vez que obtenga el tamaño de búfer necesario (establezca los búferes en NULL y los tamaños en 0) y la segunda vez para obtener los datos.
Las llamadas consecutivas a esta función devolverán listas idénticas de contadores e instancias, ya que PdhEnumObjectItemsH siempre consultará la lista de objetos de rendimiento definidos por la última llamada a PdhEnumObjectsH o PdhEnumObjectItemsH. Para actualizar la lista de objetos de rendimiento, llame a PdhEnumObjectsH con un valor de marca bRefresh de TRUE antes de llamar de nuevo a PdhEnumObjectItemsH .
El orden de los nombres de instancia y contador es indefinido.
Nota
El encabezado pdh.h define PdhEnumObjectItemsH 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 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 |