Freigeben über


GlobalUnlock-Funktion (winbase.h)

Verringert die Sperranzahl, die einem Speicherobjekt zugeordnet ist, das GMEM_MOVEABLE zugeordnet wurde. Diese Funktion hat keine Auswirkungen auf Speicherobjekte, die GMEM_FIXED zugeordnet sind.

Hinweis Die globalen Funktionen weisen einen höheren Mehraufwand auf und bieten weniger Features als andere Speicherverwaltungsfunktionen. Neue Anwendungen sollten die Heapfunktionen verwenden, es sei denn, die Dokumentation besagt, dass eine globale Funktion verwendet werden soll. Weitere Informationen finden Sie unter Globale und lokale Funktionen.
 

Syntax

BOOL GlobalUnlock(
  [in] HGLOBAL hMem
);

Parameter

[in] hMem

Ein Handle für das globale Speicherobjekt. Dieses Handle wird entweder von der Funktion GlobalAlloc oder GlobalReAlloc zurückgegeben.

Rückgabewert

Wenn das Speicherobjekt nach der Dekrementierung der Sperranzahl noch gesperrt ist, ist der Rückgabewert ein Wert ungleich null. Wenn das Speicherobjekt entsperrt wird, nachdem die Sperranzahl verringert wurde, gibt die Funktion null und GetLastErrorNO_ERROR zurück.

Wenn die Funktion fehlschlägt, ist der Rückgabewert null, und GetLastError gibt einen anderen Wert als NO_ERROR zurück.

Hinweise

Die internen Datenstrukturen für jedes Speicherobjekt enthalten eine Sperranzahl, die anfänglich 0 ist. Bei beweglichen Speicherobjekten erhöht die GlobalLock-Funktion die Anzahl um eins, und GlobalUnlock verringert die Anzahl um eins. Für jeden Aufruf, den ein Prozess an GlobalLock für ein -Objekt sendet, muss er schließlich GlobalUnlock aufrufen. Gesperrter Arbeitsspeicher wird nicht verschoben oder verworfen, es sei denn, das Speicherobjekt wird mithilfe der GlobalReAlloc-Funktion neu zugeordnet. Der Speicherblock eines gesperrten Speicherobjekts bleibt gesperrt, bis seine Sperranzahl auf 0 (null) verringert wird. Zu diesem Zeitpunkt kann er verschoben oder verworfen werden.

Speicherobjekte, die mit GMEM_FIXED zugeordnet sind, weisen immer eine Sperranzahl von 0 (null) auf. Wenn der angegebene Speicherblock fester Arbeitsspeicher ist, gibt diese Funktion TRUE zurück.

Wenn das Speicherobjekt bereits entsperrt ist, gibt GlobalUnlockFALSE zurück, und GetLastError meldet ERROR_NOT_LOCKED.

Ein Prozess sollte sich nicht auf den Rückgabewert verlassen, um zu bestimmen, wie oft globalUnlock später für ein Speicherobjekt aufgerufen werden muss.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows XP [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile winbase.h (Windows.h einschließen)
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

Globale und lokale Funktionen

Globalalloc

GlobalLock

GlobalReAlloc

Speicherverwaltungsfunktionen