HeapLock
注:本文档由 百日维新 翻译,小甲鱼校对。原文链接 -> 传送门
函数功能:
HeapLock 函数用于尝试获取与指定堆相关联的临界区对象或锁。
API 函数原型:
注释:_In_ 说明该参数是输入的。
BOOL WINAPI HeapLock(
_In_ HANDLE hHeap
);
参数解析:
参数 含义
hHeap1. 指向将要被解锁的堆的句柄
2. 该句柄由 HeapCreate 函数或 GetProcessHeap 函数返回获取
返回值:
1. 如果函数调用成功,返回值是非 0;
2. 如果函数调用失败,返回值是 0。
若想获得更多的错误信息,可调用 GetLastError 函数。
备注:
1. 如果函数成功,调用线程拥有堆锁。只有调用线程能够从堆中分配或释放的内存。如果线程试图从堆中分配或释放的内存,那么调用进程的其他线程执行将会被阻塞。这些线程将仍然被阻塞,直到拥有堆锁线程调用 HeapUnlock 函数释放锁。
2. HeapLock 函数主要用于防止当调用线程使用 HeapWalk 函数时,其他线程分配和释放堆内存。
3. 如果 HeapUnlock 函数调用在 HEAP_NO_SERIALIZATION 属性堆上,操作结果未定义。
4. 每成功调用 HeapLock 函数一次,必须也调用 HeapUnlock 函数一次来与之对应。调用 HeapUnlock 函数失败将阻止尝试访问堆的调用进程的其他任何线程执行。
需求:
Minimum supported client Windows xp [桌面应用程序 | Windows Store 程序]
Minimum supported server Windows 2003 服务器版 [桌面应用程序 | Windows Store 程序]
Minimum supported phone Windows Phone 8
HeaderHeapApi.h (包含于 Windows.h);
WinBase.h 在 Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003, and Windows XP 上(包含于 Windows.h)
Library Kernel32.lib
DLL Kernel32.dll
【API档案】版权归鱼C工作室(www.fishc.com)所有,转载请注明来源。
页:
[1]