Функция GlobalUnlock (winbase.h)
Уменьшает количество блокировок, связанных с объектом памяти, выделенным GMEM_MOVEABLE. Эта функция не влияет на объекты памяти, выделенные GMEM_FIXED.
Синтаксис
BOOL GlobalUnlock(
[in] HGLOBAL hMem
);
Параметры
[in] hMem
Дескриптор объекта глобальной памяти. Этот дескриптор возвращается функцией GlobalAlloc или GlobalReAlloc .
Возвращаемое значение
Если объект памяти по-прежнему заблокирован после уменьшения числа блокировок, возвращаемое значение будет ненулевым. Если объект памяти разблокирован после уменьшения количества блокировок, функция возвращает ноль, а GetLastError возвращает NO_ERROR.
Если функция завершается ошибкой, возвращаемое значение равно нулю, а GetLastError возвращает значение, отличное от NO_ERROR.
Комментарии
Внутренние структуры данных для каждого объекта памяти включают число блокировок, изначально равное нулю. Для перемещаемых объектов памяти функция GlobalLock увеличивает количество на единицу, а GlobalUnlock уменьшает число на единицу. Для каждого вызова, который процесс выполняет в GlobalLock для объекта, он должен в конечном итоге вызывать GlobalUnlock. Заблокированная память не будет перемещена или удалена, если только объект памяти не перераспределяется с помощью функции GlobalReAlloc . Блок памяти заблокированного объекта памяти остается заблокированным до тех пор, пока его число блокировок не будет уменьшено до нуля, после чего его можно переместить или отменить.
Объекты памяти, выделенные GMEM_FIXED всегда имеют нулевое число блокировок. Если указанный блок памяти является фиксированной памятью, эта функция возвращает значение TRUE.
Если объект памяти уже разблокирован, GlobalUnlock возвращает значение FALSE , а GetLastError сообщает ERROR_NOT_LOCKED.
Процесс не должен полагаться на возвращаемое значение для определения количества последующих вызовов GlobalUnlock для объекта памяти.
Требования
Минимальная версия клиента | Windows XP [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2003 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | winbase.h (включая Windows.h) |
Библиотека | Kernel32.lib |
DLL | Kernel32.dll |