Funzione GlobalUnlock (winbase.h)

Decrementa il conteggio dei blocchi associato a un oggetto memoria allocato con GMEM_MOVEABLE. Questa funzione non ha alcun effetto sugli oggetti di memoria allocati con GMEM_FIXED.

Nota Le funzioni globali hanno un sovraccarico maggiore e forniscono meno funzionalità rispetto ad altre funzioni di gestione della memoria. Le nuove applicazioni devono usare le funzioni heap , a meno che non venga usata una documentazione che indica che deve essere usata una funzione globale. Per altre informazioni, vedere Funzioni globali e locali.
 

Sintassi

BOOL GlobalUnlock(
  [in] HGLOBAL hMem
);

Parametri

[in] hMem

Handle per l'oggetto memoria globale. Questo handle viene restituito dalla funzione GlobalAlloc o GlobalReAlloc.

Valore restituito

Se l'oggetto memoria è ancora bloccato dopo aver decrementato il conteggio dei blocchi, il valore restituito è un valore diverso da zero. Se l'oggetto memoria viene sbloccato dopo aver decrementato il conteggio dei blocchi, la funzione restituisce zero e GetLastError restituisce NO_ERROR.

Se la funzione ha esito negativo, il valore restituito è zero e GetLastError restituisce un valore diverso da NO_ERROR.

Commenti

Le strutture di dati interne per ogni oggetto memoria includono un conteggio di blocchi inizialmente zero. Per gli oggetti di memoria rimovibili, la funzione GlobalLock incrementa il conteggio per uno e GlobalUnlock decrementa il conteggio per uno. Per ogni chiamata eseguita da un processo a GlobalLock per un oggetto, deve eventualmente chiamare GlobalUnlock. La memoria bloccata non verrà spostata o eliminata, a meno che l'oggetto memoria non venga riallocato usando la funzione GlobalReAlloc . Il blocco di memoria di un oggetto memoria bloccato rimane bloccato fino a quando il numero di blocchi viene decrementato su zero, al momento in cui può essere spostato o rimosso.

Gli oggetti di memoria allocati con GMEM_FIXED hanno sempre un numero di blocchi pari a zero. Se il blocco di memoria specificato è memoria fissa, questa funzione restituisce TRUE.

Se l'oggetto memoria è già sbloccato, GlobalUnlock restituisce i report FALSE e GetLastErrorERROR_NOT_LOCKED.

Un processo non deve basarsi sul valore restituito per determinare il numero di volte in cui deve successivamente chiamare GlobalUnlock per un oggetto memoria.

Requisiti

   
Client minimo supportato Windows XP [app desktop | App UWP]
Server minimo supportato Windows Server 2003 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione winbase.h (include Windows.h)
Libreria Kernel32.lib
DLL Kernel32.dll

Vedere anche

Funzioni globali e locali

Globalalloc

GlobalLock

GlobalReAlloc

Funzioni di gestione della memoria