globalLock 函数 (winbase.h)

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

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

语法

LPVOID GlobalLock(
  [in] HGLOBAL hMem
);

参数

[in] hMem

全局内存对象的句柄。 此句柄由 GlobalAllocGlobalReAlloc 函数返回。

返回值

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

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

注解

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

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

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

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

要求

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

另请参阅

全局和本地函数

GlobalAlloc

GlobalReAlloc

GlobalUnlock

内存管理函数