内存管理相关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判断调用进程是否拥有对指定地址段内存的写操作权限

你可能感兴趣的:(内存管理相关API列表)