Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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 |