Función GlobalUnlock (winbase.h)
Disminuye el número de bloqueos asociado a un objeto de memoria asignado con GMEM_MOVEABLE. Esta función no tiene ningún efecto en los objetos de memoria asignados con GMEM_FIXED.
Sintaxis
BOOL GlobalUnlock(
[in] HGLOBAL hMem
);
Parámetros
[in] hMem
Identificador del objeto de memoria global. Este identificador lo devuelve la función GlobalAlloc o GlobalReAlloc .
Valor devuelto
Si el objeto de memoria sigue bloqueado después de reducir el recuento de bloqueos, el valor devuelto es un valor distinto de cero. Si el objeto de memoria se desbloquea después de reducir el recuento de bloqueos, la función devuelve cero y GetLastError devuelve NO_ERROR.
Si se produce un error en la función, el valor devuelto es cero y GetLastError devuelve un valor distinto de NO_ERROR.
Comentarios
Las estructuras de datos internas de cada objeto de memoria incluyen un recuento de bloqueos que es inicialmente cero. En el caso de los objetos de memoria extraíbles, la función GlobalLock incrementa el recuento en uno y GlobalUnlock disminuye el recuento en uno. Para cada llamada que realiza un proceso a GlobalLock para un objeto, debe llamar finalmente a GlobalUnlock. La memoria bloqueada no se moverá ni descartará, a menos que el objeto de memoria se reasigna mediante la función GlobalReAlloc . El bloque de memoria de un objeto de memoria bloqueado permanece bloqueado hasta que su recuento de bloqueos se reduce a cero, en cuyo momento se puede mover o descartar.
Los objetos de memoria asignados con GMEM_FIXED siempre tienen un recuento de bloqueos de cero. Si el bloque de memoria especificado es memoria fija, esta función devuelve TRUE.
Si el objeto de memoria ya está desbloqueado, GlobalUnlock devuelve FALSE y GetLastError notifica ERROR_NOT_LOCKED.
Un proceso no debe basarse en el valor devuelto para determinar el número de veces que debe llamar posteriormente a GlobalUnlock para un objeto de memoria.
Requisitos
Cliente mínimo compatible | Windows XP [aplicaciones de escritorio | aplicaciones para UWP] |
Servidor mínimo compatible | Windows Server 2003 [aplicaciones de escritorio | aplicaciones para UWP] |
Plataforma de destino | Windows |
Encabezado | winbase.h (incluye Windows.h) |
Library | Kernel32.lib |
Archivo DLL | Kernel32.dll |