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.

Note Les fonctions globales ont une surcharge plus importante et fournissent moins de fonctionnalités que les autres fonctions de gestion de la mémoire. Les nouvelles applications doivent utiliser les fonctions de tas , sauf si la documentation indique qu’une fonction globale doit être utilisée. Pour plus d’informations, consultez Fonctions globales et locales.
 

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

Voir aussi

Fonctions globales et locales

GlobalAlloc

GlobalLock

GlobalReAlloc

Fonctions de gestion de la mémoire