Função GlobalUnlock (winbase.h)

Diminui a contagem de bloqueios associada a um objeto de memória alocado com GMEM_MOVEABLE. Essa função não tem efeito sobre objetos de memória alocados com GMEM_FIXED.

Nota As funções globais têm maior sobrecarga e fornecem menos recursos do que outras funções de gerenciamento de memória. Novos aplicativos devem usar as funções heap , a menos que a documentação declare que uma função global deve ser usada. Para obter mais informações, consulte Funções globais e locais.
 

Sintaxe

BOOL GlobalUnlock(
  [in] HGLOBAL hMem
);

Parâmetros

[in] hMem

Um identificador para o objeto de memória global. Esse identificador é retornado pela função GlobalAlloc ou GlobalReAlloc .

Valor retornado

Se o objeto de memória ainda estiver bloqueado após a diminuição da contagem de bloqueios, o valor retornado será um valor diferente de zero. Se o objeto de memória for desbloqueado após a diminuição da contagem de bloqueios, a função retornará zero e GetLastError retornará NO_ERROR.

Se a função falhar, o valor retornado será zero e GetLastError retornará um valor diferente de NO_ERROR.

Comentários

As estruturas de dados internas para cada objeto de memória incluem uma contagem de bloqueio inicialmente zero. Para objetos de memória móveis, a função GlobalLock incrementa a contagem em um e GlobalUnlock diminui a contagem em um. Para cada chamada que um processo faz ao GlobalLock para um objeto, ele deve eventualmente chamar GlobalUnlock. A memória bloqueada não será movida ou descartada, a menos que o objeto de memória seja realocado usando a função GlobalReAlloc . O bloco de memória de um objeto de memória bloqueado permanece bloqueado até que sua contagem de bloqueios seja decrementada para zero, momento em que ele pode ser movido ou descartado.

Objetos de memória alocados com GMEM_FIXED sempre têm uma contagem de bloqueio de zero. Se o bloco de memória especificado for memória fixa, essa função retornará TRUE.

Se o objeto de memória já estiver desbloqueado, GlobalUnlock retornará os relatórios FALSE e GetLastErrorERROR_NOT_LOCKED.

Um processo não deve depender do valor retornado para determinar o número de vezes que deve chamar GlobalUnlock posteriormente para um objeto de memória.

Requisitos

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

Confira também

Funções globais e locais

Globalalloc

GlobalLock

GlobalReAlloc

Funções de gerenciamento da memória