系列文章目录
//搜索给定长度的空间地址区间
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的实现最详细的分析,