windows内存管理1(做双缓存透明加密驱动必看)

本文详细介绍了Windows内存管理机制,包括内存分配与释放的缓存策略,如空闲链表和位图管理,以及执行体内存管理的快查表。讨论了如何通过内存分配接口ExAllocatePoolWithTag和ExFreePool进行操作,并解析了内存地址转换的过程,如PDE和PTE计算,以及Windows初始化时的自映射机制。内容适合理解Windows内核及开发透明加密驱动的读者。
摘要由CSDN通过智能技术生成

这些东西我整理出来很久了,由于各种原因一直没放出来,引用的图来自网络或者书籍,如果你看的不错想要转载请注明本空间。

*内存分配与释放

1.Windows内存分配与释放提供了缓存机制,由空闲链表方式提供对非分页内存管理,由位图方式提供分页内存管理同时提供相应的快查表,将最近释放的页面放入快查链表中,再次申请的时候可以快速的从快查表中取得数据.

2.在基本的分页内存管理与非分页内存管理上层,windows暴露了相关的内存分配释放接口(ExAllocatePoolWithTag,ExFreePool)并提供相应的执行体内存管理,其采用快查表形式将空闲链表划分到ListHeads数组中,并给每个CUP提供相应的缓存链表。执行体内存管理采下层提供的内存管理函数,分配基本的内存页,并裁剪到快查表中,如果ExAllocatePoolWithTag分配的内存大于阈值则直接采用下层提供的内存分配接口。

3.直接看图:

*内存地址转换

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值