shiplou
驱动牛犊
驱动牛犊
  • 注册日期2007-01-09
  • 最后登录2007-10-29
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望5点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
阅读:1240回复:1

PCI DMA 数据CommonBuffer传到用户内存的问题

楼主#
更多 发布于:2007-02-08 09:51
  用driverstudio。因为要读取大量数据,所以使用了commonbuffer。
读时:PCI----> CommonBuffer ----> IRP ---> IRPDPC(拷贝到用户缓存、同时发送event给用户)。
定义了一个全局变量,在最初发起PCI传输时记录下用户缓存(MapToSystemSpace得到的)。然后在延迟处理中从CommonBuffer中拷贝到该用户缓存当中。
DPC应该是满足<==dispatch_level的要求,在其中访问用户内存(分页内存)应该是不违法的吧。
现在的问题是:第一次传正确,一般在第二次发DMA后,DPC做CommonBuffer拷贝到用户缓存时机器遇到重启。
请问这样问题出在哪里?是否有更好的办法?
yonkee
驱动牛犊
驱动牛犊
  • 注册日期2006-11-24
  • 最后登录2009-02-24
  • 粉丝0
  • 关注0
  • 积分50分
  • 威望6点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-04-16 23:07
你如果结束了这个IRP就会这样.
游客

返回顶部