捐助郴维网
感谢您对郴维网的支持,你的支持将是郴维网持续发展的动力!
二维码
×
当前位置:郴维网 >API档案 > 正文
1 2017.06

LocalUnlock

点击次数:1169 更新时间:2017-6-1 19:36:28  【打印此页

原文链接 -> 传送门

函数功能:

LocalUnlock 函数用于减少以 LMEM_MOVEABLE 属性值分配的内存对象的锁计数。该函数对以 LMEM_FIXED 属性值分配的内存对象无效。

注释:与其他内存管理函数相比,局部内存管理函数有更大的开销却提供更少的功能。除非指出使用局部内存管理函数,不然新的应用程序应该使用堆内存管理函数。更多信息请查阅 Global and Local Functions


API 函数原型:

注释:_In_ 说明该参数是输入的。

LPVOID WINAPI LocalUnlock(
  _In_ HLOCAL hMem
);



参数解析:

参数

含义

hMem

1. 指向局部内存对象的句柄
2. 该句柄由 LocalAlloc 函数或 LocalReAlloc 函数获取



返回值:

1. 如果函数调用成功,但会存在一下两种情况:

  • 减少锁计数之后如果内存对象仍然被锁住,返回值是非 0
  • 减少锁计数之后如果内存对象被解锁,返回值是 0,GetLastError 函数返回 NO_ERROR


2. 如果函数调用失败,返回值是 0,GetLastError 函数返回一个值而非 NO_ERROR。


备注:

1. 每个内存对象的内部数据结构包含一个初始化为 0 的锁计数。对于可移动内存对象,LocalLock 函数会将锁计数值加 1,LocalUnlock 函数将锁计数值减 1。对于 LocalLock 函数的每一次调用,都必须相应的调用一次 LocalUnlock 函数。除非使用 LocalReAlloc 函数对内存对象进行重新分配,否则被锁定的内存空间不能够被移动或废弃。直到锁计数值减少为 0 时被锁定的内存块才会解锁并可以被移动或者废弃。

2. 如果内存对象已经被解锁,LocalUnlock 函数返回 FALSE ,GetLastError 函数记录 ERROR_NOT_LOCKED 错误日志。以 LMEM_FIXED 属性值分配的内存对象锁计数总是 0,并导致 ERROR_NOT_LOCKED 错误。

3. 进程不应该依赖返回值确定锁数,它必须随后对内存块调用 LocalUnlock 函数解锁。


需求:

Minimum supported client

Windows xp [仅桌面应用程序]

Minimum supported server

Windows 2003 服务器版 [仅桌面应用程序]

Header

WinBase.h (包含于 Windows.h)

Library

Kernel32.lib

DLL

Kernel32.dll


 

提示
郴维网为您提供各类专业服务:
软件开发,电脑配件销售,WIFI路由器销售,上门电脑维修,上门安装系统,系统安装,软、硬件安装,电脑除尘清灰,显示器维修,WIFI安装调试,服务器维护,数据恢复,密码破解,网络布线,网络检修,打印机维修,打印机加碳粉,苹果电脑安装系统,苹果电脑安装双系统,监控安装维护,电脑外包,笔记本电脑维修,餐饮、美容行业软件安装 等。。。。。。
点击次数:1169 更新时间:2017-6-1 19:36:28  【打印此页

上一条:LocalReAlloc

下一条:LocalFlags

关键词推荐:郴州电脑城 郴州电脑维修公司 维修电脑公司 郴州软件开发 上门电脑维修 上门安装系统 笔记本电脑维修 郴州打印机维修 打印机加碳粉 电脑安装双系统 苹果电脑双系统 液晶显示器维修 联想笔记本维修 联想笔记本维修电话 戴尔笔记本维修电话 郴州戴尔笔记本维修 戴尔笔记本郴州维修点 华硕笔记本维修点 郴州华硕笔记本维修 郴州笔记本上网维修