HeapFree
9/8/2008
Essa função libera um bloco memória de um heap. Bloco de memória foi alocado pelo HeapAlloc ou a função HeapReAlloc.
Syntax
BOOL HeapFree(
HANDLE hHeap,
DWORD dwFlags,
LPVOID lpMem
);
Parameters
hHeap
[no] Identificador para o heap cujo bloco memória é liberado por essa função. Este parâmetro é um identificador retornado pelo HeapCreate ou a função GetProcessHeap.Se este parâmetro for definido como NULL, o padrão inválido parâmetro código de erro é retornado. Para informações de erro estendidas get, chamar GetLastError.
dwFlags
[no] Controláveis aspectos de liberar um bloco memória. Somente um sinalizador é definido no momento; No entanto, todos os outros valores sinalizador são reservados para uso futuro.Especificar HEAP_NO_SERIALIZE substitui o correspondente sinalizador especificado na flOptions parâmetro quando o heap foi criado usando o HeapCreate função. Este sinalizador especifica que a exclusão mútua é ser usado ao HeapFree está acessando o heap.
Fazer não especificar esse sinalizador quando estiver acessando o heap processo. O sistema pode criar segmentos adicionais dentro processo do aplicativo o que simultaneamente acessar heap de processo.
Este sinalizador será ignorado.
lpMem
[no] Ponteiro válido para bloco de memória para ser liberado.Esse ponteiro é retornado pelo HeapAlloc Ou HeapReAlloc função.
Return Value
Nonzero indica sucesso. Zero indica falha. Para informações de erro estendidas get, chamar GetLastError.
Remarks
Garante a serialização de exclusão mútua quando dois ou mais segmentos tentar alocar simultaneamente ou livre bloqueia a partir de heap mesmo. Há um custo desempenho pequeno, mas ele deve ser usado quando múltiplo alocar segmentos e livre memória a partir de heap mesmo.
Um crítico seção sempre é usada para acessar serializar para um individual heap. Há um crítico seção por heap para proteger acessar para cada heap.
Tentar pegar um crítico seção que não seja pertencente é uma operação caminho rápido que gera pouca sobrecarga. Isso é semelhante a usar o sinalizador HEAP_NO_SERIALIZE se somente um segmento nunca foi acessando um heap específico.
Se houver contenção para o crítico seção e, portanto, o heap, uma nova solicitação segmento alocar espaço heap será serializar.
Se NULL é passado como o hHeap parâmetro, o padrão inválido parâmetro código de erro é retornado. Para informações de erro estendidas get, chamar GetLastError.
Requirements
Header | winbase.h |
Library | coredll.lib |
Windows Embedded CE | Windows CE 1.0 and later |
Windows Mobile | Windows Mobile Version 5.0 and later |
See Also
Reference
Memory Management Functions
GetProcessHeap
HeapAlloc
HeapCreate
HeapDestroy
HeapReAlloc
HeapSize