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