Поделиться через


Функция GlobalLock (winbase.h)

Блокирует глобальный объект памяти и возвращает указатель на первый байт блока памяти объекта.

Примечание Глобальные функции имеют большую нагрузку и предоставляют меньше функций, чем другие функции управления памятью. Новые приложения должны использовать функции кучи , если в документации не указано, что следует использовать глобальную функцию. Дополнительные сведения см. в разделе Глобальные и локальные функции.
 

Синтаксис

LPVOID GlobalLock(
  [in] HGLOBAL hMem
);

Параметры

[in] hMem

Дескриптор объекта глобальной памяти. Этот дескриптор возвращается функцией GlobalAlloc или GlobalReAlloc .

Возвращаемое значение

Если функция выполняется успешно, возвращаемое значение является указателем на первый байт блока памяти.

Если функция завершается сбоем, возвращается значение NULL. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

Комментарии

Внутренние структуры данных для каждого объекта памяти включают число блокировок, изначально равное нулю. Для перемещаемых объектов памяти GlobalLock увеличивает число на единицу, а функция GlobalUnlock уменьшает число на единицу. Каждый успешный вызов, выполняемый процессом в GlobalLock для объекта, должен соответствовать соответствующему вызову GlobalUnlock. Заблокированная память не будет перемещена или удалена, если только объект памяти не перераспределяется с помощью функции GlobalReAlloc . Блок памяти заблокированного объекта памяти остается заблокированным до тех пор, пока его число блокировок не будет уменьшено до нуля, после чего его можно переместить или отменить.

Объекты памяти, выделенные GMEM_FIXED всегда имеют нулевое число блокировок. Для этих объектов значение возвращаемого указателя равно значению указанного дескриптора.

Если указанный блок памяти был удален или блок памяти имеет нулевой размер, эта функция возвращает значение NULL.

Число блокировок для отброшенных объектов всегда равно нулю.

Требования

   
Минимальная версия клиента Windows XP [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2003 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header winbase.h (включая Windows.h)
Библиотека Kernel32.lib
DLL Kernel32.dll

См. также

Глобальные и локальные функции

GlobalAlloc

GlobalReAlloc

GlobalUnlock

Функции управления памятью