LocalLock函数锁定本地内存对象,并返回指向对象内存块第一个字节的指针。与锁定的存储器对象相关联的存储器块不能被移动或丢弃。对于使用LMEM_MOVEABLE标志分配的内存对象,该函数会增加对象的锁定计数。
hook chain
HLOCAL 【HMEM】 | //本地内存对象的句柄 |
); |
参数
【HMEM】
标识本地内存对象。该手柄由LocalAlloc或LocalReAlloc功能返回。
返回值
如果函数成功,则返回值是指向内存块第一个字节的指针。
如果函数失败,返回值为NULL。要获取扩展错误信息,请调用GetLastError.
备注
每个存储器对象的内部数据结构包括最初为零的锁定计数。对于可移动存储器对象,LocalLock将计数递增1,并且LocalUnlock函数将计数递减1。对于对象的进程对LocalLock的每个调用,它必须最终调用LocalUnlock.锁定的内存不会被移动或丢弃,除非通过使用LocalReAlloc功能重新分配内存对象。锁定的存储器对象的存储器块保持锁定在存储器中,直到其锁定计数递减为零为止,此时可以移动或丢弃它。
使用LMEM_FIXED标志分配的内存对象总是具有零的锁定计数。对于这些对象,返回的指针的值等于指定句柄的值。
如果指定的内存块已被丢弃,或者内存块的大小为零,则该函数返回NULL。
丢弃的对象总是锁定计数为零。
也可以看看