阅读:1373回复:4
各位大虾:关于MDL解析问题。求助!!!
如何解析一个从上层传下来BUFFER的物理空间?
先得创建一个MDL,后锁定。 pMdl+= 1;然后pULONG= (PULONG)pMdl;所指向就是物理页面号数组的起始地址。 以上理解对不? 如何从物理页面号得到对应物理起始地址? |
|
|
沙发#
发布于:2002-11-01 13:26
<<12
|
|
板凳#
发布于:2002-11-01 13:41
不是吧?
应该用MmXXXX系列的函数来得到一个指针的吧? |
|
地板#
发布于:2002-11-01 13:53
是的!
pMdl = IoAllocateMdl(...); MmBuildMdlForNonPagedPool(pMdl); //如果内存块是在非分页区 pPageArray = &pMdl[1]; 然后pPageArray[n]<<12就是第n个页面物理地址 |
|
地下室#
发布于:2002-11-01 15:39
我跟踪了一下。
采用我说的方法与MmGetMdlPfnArray()的页面号不一样! |
|
|