Fonction GlobalUnlock (winbase.h)
Décrémente le nombre de verrous associé à un objet mémoire qui a été alloué avec GMEM_MOVEABLE. Cette fonction n’a aucun effet sur les objets de mémoire alloués avec GMEM_FIXED.
Syntaxe
BOOL GlobalUnlock(
[in] HGLOBAL hMem
);
Paramètres
[in] hMem
Handle de l’objet mémoire globale. Ce handle est retourné par la fonction GlobalAlloc ou GlobalReAlloc .
Valeur retournée
Si l’objet mémoire est toujours verrouillé après la décrémentation du nombre de verrous, la valeur renvoyée est une valeur différente de zéro. Si l’objet mémoire est déverrouillé après la décrémentation du nombre de verrous, la fonction retourne zéro et GetLastError retourne NO_ERROR.
Si la fonction échoue, la valeur de retour est zéro et GetLastError retourne une valeur autre que NO_ERROR.
Remarques
Les structures de données internes pour chaque objet mémoire incluent un nombre de verrous qui est initialement égal à zéro. Pour les objets de mémoire mobiles, la fonction GlobalLock incrémente le nombre d’un, et GlobalUnlock décrémente le nombre d’un. Pour chaque appel qu’un processus effectue à GlobalLock pour un objet, il doit éventuellement appeler GlobalUnlock. La mémoire verrouillée n’est pas déplacée ou ignorée, sauf si l’objet mémoire est réalloué à l’aide de la fonction GlobalReAlloc . Le bloc de mémoire d’un objet de mémoire verrouillé reste verrouillé jusqu’à ce que son nombre de verrous soit décrémenté à zéro, à ce moment-là, il peut être déplacé ou ignoré.
Les objets de mémoire alloués avec GMEM_FIXED ont toujours un nombre de verrous de zéro. Si le bloc de mémoire spécifié est de la mémoire fixe, cette fonction retourne TRUE.
Si l’objet mémoire est déjà déverrouillé, GlobalUnlock retourne FALSE et GetLastErrorsignale ERROR_NOT_LOCKED.
Un processus ne doit pas s’appuyer sur la valeur de retour pour déterminer le nombre de fois où il doit ensuite appeler GlobalUnlock pour un objet mémoire.
Configuration requise
Client minimal pris en charge | Windows XP [applications de bureau | applications UWP] |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau | applications UWP] |
Plateforme cible | Windows |
En-tête | winbase.h (inclure Windows.h) |
Bibliothèque | Kernel32.lib |
DLL | Kernel32.dll |