Função HeapLock (heapapi.h)

Tenta adquirir o objeto de seção crítico ou bloqueio associado a um heap especificado.

Sintaxe

BOOL HeapLock(
  [in] HANDLE hHeap
);

Parâmetros

[in] hHeap

Um identificador para o heap a ser bloqueado. Esse identificador é retornado pela função HeapCreate ou GetProcessHeap .

Valor retornado

Se a função for bem-sucedida, o valor retornado será diferente de zero.

Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.

Comentários

Se a função for bem-sucedida, o thread de chamada será proprietário do bloqueio de heap. Somente o thread de chamada poderá alocar ou liberar memória do heap. A execução de qualquer outro thread do processo de chamada será bloqueada se esse thread tentar alocar ou liberar memória do heap. Esses threads permanecerão bloqueados até que o thread que possui o bloqueio de heap chame a função HeapUnlock .

A função HeapLock é útil principalmente para impedir a alocação e a liberação de memória de heap por outros threads, enquanto o thread de chamada usa a função HeapWalk .

Se a função HeapLock for chamada em um heap criado com o sinalizador HEAP_NO_SERIALIZE , os resultados serão indefinidos.

Cada chamada bem-sucedida para HeapLock deve ser correspondida por uma chamada correspondente ao HeapUnlock. A falha ao chamar HeapUnlock bloqueará a execução de quaisquer outros threads do processo de chamada que tentam acessar o heap.

Exemplos

Enumerando um heap

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho heapapi.h (inclua Windows.h)
Biblioteca Kernel32.lib
DLL Kernel32.dll

Confira também

Funções heap

HeapUnlock

HeapWalk

Funções de gerenciamento da memória

APIs Vertdll disponíveis em enclaves de VBS