Windows驱动3. 内存管理
Windows驱动3. 内存管理
在驱动开发中, 通常不能使用C运行库中的内存分配函数, 如 malloc
, free
, new
, delete
.
内核模式中有自己的内存分配函数
内存管理函数
函数 | C库对应 | 描述 |
---|---|---|
ExAllocatePool2 | malloc | 分配内存 |
ExFreePool | free | 释放内存 |
RtlEqualMemory | memcmp | 比较内存 |
RtlCopyMemory | memcpy | 复制内存 |
RtlFillMemory | memset | 填充内存 |
RtlZeroMemory | memset | 清零内存 |
RtlMoveMemory | memmove | 移动内存 |
块表 ExInitializePagedLookasideList
块表非常类似与ObjectPool, 用于快速分配和回收obj, 但是内存并不会被回收
1 |
|
C++中的内存管理
在C++中, 不能使用原生的 new
和 delete
, 需要对这两个操作符进行重载, 从而符合内核中的管理内存方法
1 |
|
Windows驱动3. 内存管理
https://simonkimi.githubio.io/2024/08/02/Windows驱动3-内存管理/