首页
社区
课程
招聘
[求助]Windows内核源码详尽分析 之 内存管理篇 之 MmLocateMemoryAreaByRegion WINDOWS WDK中没有这个函数
发表于: 2015-8-20 19:57 4590

[求助]Windows内核源码详尽分析 之 内存管理篇 之 MmLocateMemoryAreaByRegion WINDOWS WDK中没有这个函数

2015-8-20 19:57
4590
RT, 【求助】Windows内核源码详尽分析 之 内存管理篇 之 MmLocateMemoryAreaByRegion WINDOWS WDK中没有这个函数??
怎么我找不到。 WinDbg也没。原作者在这里单指ReactOs么?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 22
活跃值: (242)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
2
ReatOs中的源代码

PMEMORY_AREA NTAPI
MmLocateMemoryAreaByRegion(
   PMMSUPPORT AddressSpace,
   PVOID Address,
   ULONG_PTR Length)
{
   PMEMORY_AREA Node;
   PVOID Extent = (PVOID)((ULONG_PTR)Address + Length);

   /* Special case for empty tree. */
   if (AddressSpace->WorkingSetExpansionLinks.Flink == NULL)
      return NULL;

   /* Traverse the tree from left to right. */
   for (Node = MmIterateFirstNode((PMEMORY_AREA)AddressSpace->WorkingSetExpansionLinks.Flink);
        Node != NULL;
        Node = MmIterateNextNode(Node))
   {
      if (Node->StartingAddress >= Address &&
          Node->StartingAddress < Extent)
      {
         DPRINT("MmLocateMemoryAreaByRegion(%p - %p): %p - %p\n",
                Address, (ULONG_PTR)Address + Length, Node->StartingAddress,
                Node->EndingAddress);
         return Node;
      }
      if (Node->EndingAddress > Address &&
          Node->EndingAddress < Extent)
      {
         DPRINT("MmLocateMemoryAreaByRegion(%p - %p): %p - %p\n",
                Address, (ULONG_PTR)Address + Length, Node->StartingAddress,
                Node->EndingAddress);
         return Node;
      }
      if (Node->StartingAddress <= Address &&
          Node->EndingAddress >= Extent)
      {
         DPRINT("MmLocateMemoryAreaByRegion(%p - %p): %p - %p\n",
                Address, (ULONG_PTR)Address + Length, Node->StartingAddress,
                Node->EndingAddress);
         return Node;
      }
      if (Node->StartingAddress >= Extent)
      {
         DPRINT("Finished MmLocateMemoryAreaByRegion() = NULL\n");
         return NULL;
      }
   }

   return NULL;
}
2015-8-20 22:30
0
雪    币: 17
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
omp
3
可以给一个联系方式吗
2015-8-21 00:25
0
雪    币: 22
活跃值: (242)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
4
直接分享我参考的ReatOs源码http://pan.baidu.com/s/1c0Ct2UG
2015-8-21 09:47
0
雪    币: 135
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
[QUOTE=GeekCheng;1387909]直接分享我参考的ReatOs源码http://pan.baidu.com/s/1c0Ct2UG[/QUOTE]

很好~
2015-8-21 10:06
0
雪    币: 11
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
谢了.....
2015-8-21 10:31
0
游客
登录 | 注册 方可回帖
返回
//