Sunbeam
驱动小牛
驱动小牛
  • 注册日期2001-10-29
  • 最后登录2010-01-29
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望12点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
阅读:1374回复:4

各位大虾:关于MDL解析问题。求助!!!

楼主#
更多 发布于:2002-11-01 11:34
如何解析一个从上层传下来BUFFER的物理空间?
先得创建一个MDL,后锁定。
pMdl+= 1;然后pULONG= (PULONG)pMdl;所指向就是物理页面号数组的起始地址。

以上理解对不?
如何从物理页面号得到对应物理起始地址?
堂堂正正做人,明明白白做事
Sunbeam
驱动小牛
驱动小牛
  • 注册日期2001-10-29
  • 最后登录2010-01-29
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望12点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-11-01 15:39
我跟踪了一下。
采用我说的方法与MmGetMdlPfnArray()的页面号不一样!
堂堂正正做人,明明白白做事
gung
驱动中牛
驱动中牛
  • 注册日期2001-06-10
  • 最后登录2008-04-21
  • 粉丝0
  • 关注0
  • 积分25分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-11-01 13:53
是的!
pMdl = IoAllocateMdl(...);
MmBuildMdlForNonPagedPool(pMdl); //如果内存块是在非分页区
pPageArray = &pMdl[1];
然后pPageArray[n]<<12就是第n个页面物理地址
fracker
驱动太牛
驱动太牛
  • 注册日期2001-06-28
  • 最后登录2021-03-30
  • 粉丝0
  • 关注0
  • 积分219分
  • 威望81点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分1分
  • 社区居民
地板#
发布于:2002-11-01 13:41
不是吧?
应该用MmXXXX系列的函数来得到一个指针的吧?
gung
驱动中牛
驱动中牛
  • 注册日期2001-06-10
  • 最后登录2008-04-21
  • 粉丝0
  • 关注0
  • 积分25分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-11-01 13:26
<<12
游客

返回顶部