内存管理相关API列表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了内存管理相关API列表相关的知识,希望对你有一定的参考价值。

参考技术A 堆管理

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列表的主要内容,如果未能解决你的问题,请参考以下文章

VIM管理多个文件相关知识

spark 内存管理机制与相关参数调优

Yarn 内存分配管理机制及相关参数配置

启动期间的内存管理之build_zonelists初始化备用内存域列表zonelists--Linux内存管理(十三)

iOS内存管理使用非自己生成对象的相关问题

Lua的API函数