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 |