globalLock 函数 (winbase.h)
锁定全局内存对象并返回指向对象内存块的第一个字节的指针。
语法
LPVOID GlobalLock(
[in] HGLOBAL hMem
);
参数
[in] hMem
全局内存对象的句柄。 此句柄由 GlobalAlloc 或 GlobalReAlloc 函数返回。
返回值
如果函数成功,则返回值是指向内存块的第一个字节的指针。
如果函数失败,则返回值为 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 |