sherlock
驱动牛犊
驱动牛犊
  • 注册日期2010-02-08
  • 最后登录2011-06-08
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望21点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1839回复:1

求助windows驱动DMA操作的一些问题

楼主#
更多 发布于:2011-06-03 19:04
哪位大神整过windows驱动中关于DMA操作中调用AllocateCommonBuffer函数分配很大一块内存(>1GB)的问题。
直接分配这么大的缓冲区,机子直接蓝屏,系统地址池中没有这么大的连续物理内存。
按照MSDN文档上的提醒:As the DDK suggests, therefore, it’s better to make several requests for smaller blocks if the blocks don’t have to be contiguous.
我试着多调用几次AllocateCommonBuffer来分配物理内存,但是由于函数中需要传入DMA适配器对象作为参数,我每分配一次就把之前分配好的挂载在这个DMA适配器上的内存给覆盖掉了。我现在的问题是:
一个设备只能创建一个DMA适配器吗?这个地方所说的多申请几次要怎么实现?
wxj120bw
驱动小牛
驱动小牛
  • 注册日期2008-06-14
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分109分
  • 威望1014点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2011-06-03 20:58
不清楚设备是不是只能创建一个DMA适配器 不过AllocateCommonBuffer申请的内存怎么会存在覆盖呢?
游客

返回顶部