MDL的困扰! 敬请各位前辈赐教!

skyler2008 2011-04-28 06:23:56
刚刚接触Windows驱动, 对其中的MDL的用法存有较多疑惑, 敬请各位高手赐教!

virtualAddress = MmGetMdlVirtualAddress(pIrp->MdlAddress);
totalLength = MmGetMdlByteCount(pIrp->MdlAddress);

mdl = IoAllocateMdl(virtualAddress, totalLength, FALSE, FALSE, NULL )
==>是否可以理解为:
分配一个空的MDL空间(不赋值), 使该结构体的空间大小能描述从 virtualAddress开始,长度为totalLength的虚拟内存空间所对应的物理地址空间

IoBuildPartialMdl((PVOID)pIrp->MdlAddress,
mdl,
(PVOID) NewVirtualAddress,
NewVirtualAddressLen);
==>是否可以理解为:
使mdl能描述一个物理地址空间, 该空间为pIrp->MdlAddress中描述的从NewVirtualAddress开始,长度为NewVirtualAddressLen的虚拟地址对应的物理地址空间
...全文
104 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Areslee 2011-05-02
  • 打赏
  • 举报
回复
MDL是一个描述符,用来描述你指定的内存空间的虚拟/物理内存映射信息

21,616

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧