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
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 |