内核里使用内存
内存使用,无非就是申请、复制、设置、释放。在 C 语言里,它们对应的函数是:malloc、memcpy、memset、free;在内核编程里,他们分别对应 ExAllocatePool、RtlMoveMemory、
RtlFillMemory、ExFreePool。它们的原型分别是:
需要注意的是,RtlFillMemory 和 memset 的原型不同、ExAllocatePool 和 malloc 的原型也不同。前者只是参数前后调换了一下位置,但是后者则多了一个参数:PoolType。这个PoolType 也是必须了解的。PoolType 在 在 MSDN 的介绍上有 N 种, 其实 常用有 的只有 <

本文介绍了Win64驱动中内核内存管理的关键概念,包括ExAllocatePool、RtlMoveMemory等函数的使用,以及PagedPool和NonPagedPool的区别。重点讨论了内核内存泄漏的影响,以及在内核态下内存的读写执行特性。同时,提到了访问和修改其他模块内存时需要考虑的IRQL和内存保护问题,以及通过MDL映射内存的推荐做法。
最低0.47元/天 解锁文章
398

被折叠的 条评论
为什么被折叠?



