GlobalUnlock

【勇芳软件工作室】汉化HomePreviousNext

GlobalUnlock函数减少与使用GMEM_MOVEABLE标志分配的内存对象关联的锁定计数。此函数对使用GMEM_FIXED标志分配的内存对象没有影响。

BOOL GlobalUnlock(

HGLOBAL 【HMEM】//处理全局内存对象
); 

参数

【HMEM】

标识全局内存对象。该手柄由GlobalAllocGlobalReAlloc功能返回。

返回值

如果内存对象在递减锁定计数后仍然被锁定,则返回值为非零值。

如果函数失败,返回值为零。要获取扩展错误信息,请调用GetLastError.如果GetLastError返回NO_ERROR,则内存对象将被解锁。

备注

每个存储器对象的内部数据结构包括最初为零的锁定计数。对于可移动存储器对象,GlobalLock函数将计数递增1,GlobalUnlock将计数递减1。对于一个进程对于一个对象的进程的每个调用,它必须最终调用GlobalUnlock.锁定的内存不会被移动或丢弃,除非通过使用GlobalReAlloc功能重新分配内存对象。锁定的存储器对象的存储块保持锁定,直到其锁定计数递减为零,此时可以移动或丢弃它。

使用GMEM_FIXED标志分配的内存对象总是具有零的锁计数。如果指定的内存块是固定内存,则此函数返回TRUE。

如果内存对象已经解锁,GlobalUnlock返回FALSE,GetLastError报告为ERROR_NOT_LOCKED。使用LMEM_FIXED标志分配的内存对象总是具有零的锁定计数,并导致ERROR_NOT_LOCKED错误。

一个进程不应该依赖返回值来确定一个随机调用GlobalUnlock一个内存对象的次数。

也可以看看

GlobalAlloc, GlobalFlags, GlobalLock, GlobalReAlloc