内存管理相关API列表

堆管理

API说明

HeapCreate为进程创建堆,返回堆句柄

GetProcessHeap获取当前进程中的一个堆,返回句柄

GetProcessHeaps获得进程中所有堆,包括堆的数量和各个堆的句柄

HeapAlloc从指定堆上分配内存块

HeapReAlloc重新分配内存,改变已经分配好的堆内存块的大小

GetSystemInfo获取系统信息

HeapSize获取指定堆的大小,以字节位单位返回堆大小信息

HeapFree释放HeapAlloc和HeapReAlloc所分配的内存

HeapDestroy销毁HeapCreate创建的堆

全局和局部内存管理

API说明

GlobalAlloc在默认堆上分配指定属性和大小的内存

GlobalFree释放有Global分配的内存

GlobalReAlloc重新分配内存,改变已经分配好的堆内存块大小

GlobalLock将GlobalAlloc及GlobalReAlloc分配的属性为GMEM_MOVEABLE的内存块设置为固定

GlobalHandle与GlobalLock相对

GlobalSize获取内存大小

虚拟内存管理

API说明

VirtualAlloc"保留"或"提交"内存页面,将"空闲的"内存页面变为"保留的"或"已提交的",将"保留的"页面变为"提交的"

VirtualAllocEx类似VirtualAlloc功能,不过可以为其他进程分配内存

VirtualFree将内存状态从"已提交的"变为"保留的",或将"保留的"变为"空闲的",或同时进行

VirtualFreeEx释放由VirtualAllocEx分配的内存,功能,使用方法和VirtualFree类似

VirtualProtect改变指定虚拟内存分页的保护属性

内存操作与内存信息管理

API说明

CopyMemory赋值内存,第一个参数为目的地址,第二个参数为源地址,第三个参数为赋值数据的大小,单位为字节

FillMemory填充内存,将一段内存填充同一个值

MoveMemory功能和CopyMemory类似,不同的是源地址和目的地址可以相同

ZeroMemory将指定内存区域清零

GlobalMemoryStatusEx用于获取系统当前内存使用情况

IsBadCodePtr判断调用进程是否拥有对指定地址内存的读操作权限

IsBadReadPtr判断调用进程是否拥有对指定地址段内存的读操作权限

IsBadStringPtr判断调用进程是否拥有对指定字符串指针的读取权限

IsBadWritePtr判断调用进程是否拥有对指定地址段内存的写操作权限

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容