原文链接 -> 传送门
函数功能:
GlobalLock 函数用于锁定全局内存对象并返回一个指向该对象内存块第一字节的指针。
注释:与其他内存管理函数相比,全局内存管理函数有更大的开销却提供更少的功能。除非指出使用全局内存管理函数,不然新的应用程序应该使用堆内存管理函数。更多信息请查阅 Global and Local Functions。
API 函数原型:
注释:_In_ 说明该参数是输入的。
LPVOID WINAPI GlobalLock( _In_ HGLOBAL hMem );
参数解析:
|
参数 |
含义 |
|
hMem |
1. 指向全局内存对象的句柄 |
返回值:
1. 如果函数调用成功,返回一个指向该对象内存块第一字节的指针;
2. 如果函数调用失败,返回 NULL。
若想获得更多的错误信息,请调用 GetLastError 函数。
备注:
1. 每个内存对象的内部数据结构包含一个将会初始化为 0 的锁计数。对于可移动内存对象,GlobalLock 函数会将锁计数值加 1,GlobalUnlock 函数将锁计数值减 1。对于 GlobalLock 的每一次调用,都必须相应的调用一次 GlobalUnlock 函数。除非使用 GlobalReAlloc 函数对内存对象进行重新分配,否则被锁定的内存空间不能够被移动或废弃。直到锁计数值减少为 0 时被锁定的内存块才会解锁并可以被移动或者释放。
2. 以 GMEM_FIXED 属性分配的内存块空间的计数器始终为 0。对于这样的对象,函数的返回指针即为该句柄。
3. 如果指定的内存块已经被废弃或者大小为 0 字节,该函数返回 NULL。
4. 废弃后的对象的锁计数为 0。
需求:
|
Minimum supported client |
Windows xp [仅桌面应用程序] |
|
Minimum supported server |
Windows 2003 服务器版 [仅桌面应用程序] |
|
Header |
WinBase.h (包含于 Windows.h) |
|
Library |
Kernel32.lib |
|
DLL |
Kernel32.dll |




