3.1.1ReactOS系统中搜索给定长度的空间地址区间函数的实现

系列文章目录

//搜索给定长度的空间地址区间

MmFindGap();

PMADDRESS_SPACE AddressSpace,//该进程用户空间

ULONG_PTR Length,//寻找的空间间隔大小

ULONG_PTR Granularity,//粒度位,表明空间起点的对齐要求,注意是起点地址

ULONG_PTR TopDown);

函数的定义:

PVOID

NTAPI

MmFindGap(

PMADDRESS_SPACE AddressSpace,

ULONG_PTR Length,

ULONG_PTR Granularity,

BOOLEAN TopDown

);

文章目录


MmFindGap函数的实现

//搜索给定长度的空间地址区间

c 复制代码
//所属给定长度的空间地址区间


PVOID STDCALL
MmFindGap(
   PMADDRESS_SPACE AddressSpace,
   ULONG_PTR Length,
   ULONG_PTR Granularity,
   BOOLEAN TopDown)
{
   if (TopDown)//表示寻找的方向时从高端到低段还是从低端往高端
      return MmFindGapTopDown(AddressSpace, Length, Granularity);//高端往地段

   return MmFindGapBottomUp(AddressSpace, Length, Granularity);//低端往高端
}

//搜索给定长度的空间地址区间

PMADDRESS_SPACE AddressSpace,//该进程用户空间

ULONG_PTR Length,//寻找的空间间隔大小

ULONG_PTR Granularity,//粒度位,表明空间起点的对齐要求,注意是起点地址

ULONG_PTR TopDown);

下一篇文章对函数对函数MmFindGapTopDowm的实现最详细的分析,

相关推荐
CiLerLinux8 小时前
第五十五章 ESP32S3 基于MQTT协议连接OneNet物联网开放平台
单片机·嵌入式硬件·物联网
学习嵌入式的小羊~8 小时前
AX520CE-- 音视频mdk的初识
linux·服务器
earthzhang20218 小时前
【1008】计算(a+b)/c的值
c语言·数据结构·c++·算法·青少年编程
BS_Li8 小时前
C++11(列表初始化、右值引用和移动语义)
c++·列表初始化·右值引用和移动语义
remaindertime9 小时前
RocketMQ 集群部署实战:为什么我选择自己搭建,而不是现成方案
linux·docker·rocketmq
报错小能手9 小时前
linux学习笔记(26)计算机网络基础
linux·笔记·学习
勇闯逆流河9 小时前
【C++】红黑树详解
开发语言·数据结构·c++
盛满暮色 风止何安9 小时前
防火墙的类别和登录Web的方法
linux·运维·服务器·网络·网络协议·tcp/ip·网络安全
铭哥的编程日记10 小时前
【Linux】库制作与原理
android·linux·运维
shan~~10 小时前
linux安装海量数据库和操作
linux·数据库·oracle