Compartir a través de


Función GetProcessHeaps (heapapi.h)

Devuelve el número de montones activos y recupera identificadores de todos los montones activos para el proceso de llamada.

Sintaxis

DWORD GetProcessHeaps(
  [in]  DWORD   NumberOfHeaps,
  [out] PHANDLE ProcessHeaps
);

Parámetros

[in] NumberOfHeaps

Número máximo de identificadores de montón que se pueden almacenar en el búfer al que apunta ProcessHeaps.

[out] ProcessHeaps

Puntero a un búfer que recibe una matriz de identificadores de montón.

Valor devuelto

El valor devuelto es el número de identificadores para montones que están activos para el proceso de llamada.

Si el valor devuelto es menor o igual que NumberOfHeaps, la función ha almacenado ese número de identificadores de montón en el búfer al que apunta ProcessHeaps.

Si el valor devuelto es mayor que NumberOfHeaps, el búfer al que apunta ProcessHeaps es demasiado pequeño para contener todos los identificadores del montón para el proceso de llamada y la función almacena los identificadores NumberOfHeaps en el búfer. Use el valor devuelto para asignar un búfer lo suficientemente grande como para recibir todos los identificadores y volver a llamar a la función.

Si el valor devuelto es cero, se ha producido un error en la función porque cada proceso tiene al menos un montón activo, el montón predeterminado para el proceso. Para obtener información de error extendida, llame a GetLastError.

Comentarios

La función GetProcessHeaps obtiene un identificador del montón predeterminado del proceso de llamada, además de identificadores de los montones privados adicionales creados mediante una llamada a la función HeapCreate en cualquier subproceso del proceso.

La función GetProcessHeaps es principalmente útil para la depuración, ya que algunos de los montones privados recuperados por la función pueden haber sido creados por otro código que se ejecuta en el proceso y se pueden destruir después de que GetProcessHeaps devuelva. La destrucción de un montón invalida el identificador del montón y el uso continuado de estos identificadores puede provocar un comportamiento indefinido en la aplicación. Solo se debe llamar a las funciones de montón en el montón predeterminado del proceso de llamada y en montones privados que el proceso crea y administra.

Para obtener un identificador del montón de procesos del proceso de llamada, use la función GetProcessHeap .

Ejemplos

Para obtener un ejemplo, consulte Obtención de montones de procesos.

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 heapapi.h (incluye Windows.h)
Library Kernel32.lib
Archivo DLL Kernel32.dll

Vea también

GetProcessHeap

Funciones del montón

MontónCrear

Funciones de administración de memoria

API de Vertdll disponibles en enclaves de VBS