localLock 函数 (winbase.h)

锁定本地内存对象并返回指向对象内存块的第一个字节的指针。

注意 与其他内存管理功能相比,本地函数具有更大的开销,并且提供的功能更少。 除非文档指出应使用本地函数,否则新应用程序应使用 函数。 有关详细信息,请参阅 全局函数和本地函数
 

语法

LPVOID LocalLock(
  [in] HLOCAL hMem
);

参数

[in] hMem

本地内存对象的句柄。 此句柄由 LocalAllocLocalReAlloc 函数返回。

返回值

如果函数成功,则返回值是指向内存块的第一个字节的指针。

如果函数失败,则返回值为 NULL。 要获得更多的错误信息,请调用 GetLastError。

注解

每个内存对象的内部数据结构包括最初为零的锁计数。 对于可移动内存对象, LocalLock 将计数递增 1,LocalUnlock 函数将计数递减 1。 进程对对象的 LocalLock 进行的每个成功调用都必须通过对 LocalUnlock 的相应调用进行匹配。 除非使用 LocalReAlloc 函数重新分配内存对象,否则不会移动或丢弃锁定的内存。 锁定的内存对象的内存块在内存中保持锁定状态,直到其锁计数减少到零,此时可以移动或放弃它。

使用 LMEM_FIXED 分配的内存对象始终具有零锁计数。 对于这些对象,返回的指针的值等于指定句柄的值。

如果指定的内存块已被丢弃,或者内存块具有零字节大小,则此函数返回 NULL

丢弃的对象始终具有零的锁计数。

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 winbase.h (包括 Windows.h)
Library Kernel32.lib
DLL Kernel32.dll

另请参阅

全局和本地函数

LocalAlloc

LocalFlags

LocalReAlloc

LocalUnlock

内存管理函数