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

HeapSize

点击次数:1261 更新时间:2017-6-17 19:39:33  【打印此页

原文链接 -> 传送门

函数功能:

HeapSize 函数用于获取由 HeapAlloc 函数或 HeapReAlloc 函数从堆中分配的内存块大小。


API 函数原型:

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

SIZE_T WINAPI HeapSize(
  _In_ HANDLE  hHeap,
  _In_ DWORD   dwFlags,
  _In_ LPCVOID lpMem
);


参数解析:
 

参数

含义

hHeap

1. 指向内存块所在的堆句柄

2. 该句柄由 HeapCreate 函数或 GetProcessHeap 函数返回获取

dwFlags

1. 堆内存大小选项

2. 当堆由 HeapCreate 函数创建时,指定以下值覆盖指定在 flOptions 参数中的对应值:

含义

HEAP_NO_SERIALIZE
(0x00000001)

1. 不使用串行访问。关于串行访问的更多信息,请参见备注部分

2. 为了确保对 HeapSize 函数所有调用串行访问都处于禁用状态,当用HeapCreate 函数创建堆时,指定 HEAP_NO_SERIALIZE 参数值。这种情况下,没有必要在调用 HeapSize 函数时再指定 HEAP_NO_SERIALIZE 参数值

3. 当访问进程堆时, HEAP_NO_SERIALIZE 值不应该指定。系统可能会在应用程序的进程中创建额外的线程,比如同时访问进程堆的复制句柄

lpMem

1. 指向由 HeapSize 函数获得内存块大小的指针

2. HeapAlloc 函数或 HeapReAlloc 函数返回该指针。堆内存块必须由 hHeap 参数指定



返回值:

1. 如果函数调用成功,返回值是被请求分配的内存块的大小,单位字节;

2. 如果函数调用失败,返回值是 (SIZE_T) - 1。如果先前没有调用 SetLastError 函数设置错误信息,应用程序不能调用GetLastError 函数获取相关错误信息;

3. 如果 lpMem 指针指向分配的堆内存不在 hHeap 句柄指向的内存区域内,HeapSize 函数操作的未定义。


备注:

当两个或两个以上的线程试图同时从相同堆分配或释放内存块时,序列化确保互斥。序列化有小小的性能损耗,但当多个线程从相同堆分配和释放内存时,它必须使用。设置 HEAP_NO_SERIALIZE 参数值消除堆中互斥。如果没有序列化,使用相同堆句柄的两个或两个以上的线程可能试图同时分配或释放内存,可能导致堆溢出。因此,HEAP_NO_SERIALIZE 值仅在以下情况下安全地使用:

 

·         进程只有一个线程

·         进程有多个线程,但一个堆中只有一个线程在使用

·         进程有多个线程,但应用程序使用堆时,有互斥解决方案



需求:
 

Minimum supported client

Windows XP [桌面应用程序 | Windows Store 程序]

Minimum supported server

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

Minimum supported phone

Windows Phone 8

Header

HeapApi.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

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

上一条:HeapReAlloc

下一条:GetModuleHandle

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