Función HeapLock (heapapi.h)

Intenta adquirir el objeto de sección crítica, o bloquear, que está asociado a un montón especificado.

Sintaxis

BOOL HeapLock(
  [in] HANDLE hHeap
);

Parámetros

[in] hHeap

Identificador del montón que se va a bloquear. La función HeapCreate o GetProcessHeap devuelve este identificador.

Valor devuelto

Si la función se realiza correctamente, el valor devuelto es distinto de cero.

Si la función no se realiza correctamente, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.

Comentarios

Si la función se ejecuta correctamente, el subproceso que realiza la llamada posee el bloqueo del montón. Solo el subproceso que llama podrá asignar o liberar memoria del montón. La ejecución de cualquier otro subproceso del proceso de llamada se bloqueará si ese subproceso intenta asignar o liberar memoria del montón. Estos subprocesos permanecerán bloqueados hasta que el subproceso propietario del bloqueo del montón llame a la función HeapUnlock .

La función HeapLock es principalmente útil para evitar la asignación y liberación de la memoria del montón por otros subprocesos, mientras que el subproceso de llamada usa la función HeapWalk .

Si se llama a la función HeapLock en un montón creado con la marca HEAP_NO_SERIALIZE , los resultados no se definen.

Cada llamada correcta a HeapLock debe coincidir con una llamada correspondiente a HeapUnlock. Si no se llama a HeapUnlock , se bloqueará la ejecución de cualquier otro subproceso del proceso de llamada que intente acceder al montón.

Ejemplos

Enumeración de un montó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 heapapi.h (incluya Windows.h)
Library Kernel32.lib
Archivo DLL Kernel32.dll

Vea también

Funciones del montón

HeapUnlock

HeapWalk

Funciones de administración de memoria

API de Vertdll disponibles en enclaves de VBS