关于MmAllocateContiguousMemory的问题

AMinfo 2004-04-14 10:16:14
在非WDM驱动中,nBuffer = MmAllocateContiguousMemory( 4567, nPhysicalAddress );
改成WDM驱动后就出错了:unresolved external symbol _imp_MmAllocateContiguousMemory@12
这种问题要怎么解决?MmAllocateContiguousMemory和ExAllocatePool有什么区别?
MmAllocateContiguousMemory( 4567, nPhysicalAddress ); 转成ExAllocatePool要怎么用?
...全文
543 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
AMinfo 2004-04-23
  • 打赏
  • 举报
回复
感冒了好几天,快一周没来了,顶
xstring 2004-04-16
  • 打赏
  • 举报
回复
恩,好象是

不过象对于我这种驱动菜鸟,DDK文档基本足够了。
AMinfo 2004-04-16
  • 打赏
  • 举报
回复
谢谢!驱动开发这一块的资料网上的都好像不全啊。
xstring 2004-04-15
  • 打赏
  • 举报
回复
MmAllocateContiguousMemory( 4567, nPhysicalAddress );
对应的换成
ExAllocatePool (NonPagedPool, 4567);
AMinfo 2004-04-15
  • 打赏
  • 举报
回复
噢,原来是这样,不过要怎么将MmAllocateContiguousMemory转成ExAllocatePool呢?
xstring 2004-04-15
  • 打赏
  • 举报
回复
:(

不清楚,等其他高手来解释吧
AMinfo 2004-04-15
  • 打赏
  • 举报
回复
没有错误代码,这有点类似于设备中断冲突。
xstring 2004-04-15
  • 打赏
  • 举报
回复
这我就不太清楚了 :(

你可以看看设备错误代码,然后查一下
AMinfo 2004-04-15
  • 打赏
  • 举报
回复
明白,我也是这样做的,不过自己以前没做过不能确定,谢谢!我原想加上ntoskrnl.lib或wdmsec.lib,好像会出问题,也就是在设备管理器中会出现惊叹号,这是什么原因?
xstring 2004-04-14
  • 打赏
  • 举报
回复
你看看试着加上ntoskrnl.lib或wdmsec.lib行不行,这两个库中都有MmAllocateContiguousMemory

MmAllocateContiguousMemory分配的是非页面内存,且保证在物理内存中是连续的(分配的内存多于一个页面时)。而且它还可以指定分配的内存的位置范围

ExAllocatePool可以分配页面内存也可以分配非页内存,但它不保证分配的内存在物理上是连续的。

2,641

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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