Функция LocalLock (winbase.h)
Блокирует локальный объект памяти и возвращает указатель на первый байт блока памяти объекта.
Синтаксис
LPVOID LocalLock(
[in] HLOCAL hMem
);
Параметры
[in] hMem
Дескриптор локального объекта памяти. Этот дескриптор возвращается функцией LocalAlloc или LocalReAlloc .
Возвращаемое значение
Если функция выполняется успешно, возвращаемое значение является указателем на первый байт блока памяти.
Если функция завершается сбоем, возвращается значение NULL. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.
Комментарии
Внутренние структуры данных для каждого объекта памяти включают число блокировок, изначально равное нулю. Для перемещаемых объектов памяти LocalLock увеличивает число на единицу, а функция LocalUnlock уменьшает число на единицу. Каждый успешный вызов, выполняемый процессом в LocalLock для объекта, должен соответствовать соответствующему вызову LocalUnlock. Заблокированная память не будет перемещена или удалена, если объект памяти не перераспределен с помощью функции LocalReAlloc . Блок памяти заблокированного объекта памяти остается заблокированным в памяти до тех пор, пока его число блокировок не будет уменьшено до нуля, после чего его можно переместить или отменить.
Объекты памяти, выделенные LMEM_FIXED всегда имеют нулевое число блокировок. Для этих объектов значение возвращаемого указателя равно значению указанного дескриптора.
Если указанный блок памяти был удален или блок памяти имеет нулевой размер, эта функция возвращает значение NULL.
Число блокировок для отброшенных объектов всегда равно нулю.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | winbase.h (включая Windows.h) |
Библиотека | Kernel32.lib |
DLL | Kernel32.dll |