阅读:1240回复:1
PCI DMA 数据CommonBuffer传到用户内存的问题
用driverstudio。因为要读取大量数据,所以使用了commonbuffer。
读时:PCI----> CommonBuffer ----> IRP ---> IRPDPC(拷贝到用户缓存、同时发送event给用户)。 定义了一个全局变量,在最初发起PCI传输时记录下用户缓存(MapToSystemSpace得到的)。然后在延迟处理中从CommonBuffer中拷贝到该用户缓存当中。 DPC应该是满足<==dispatch_level的要求,在其中访问用户内存(分页内存)应该是不违法的吧。 现在的问题是:第一次传正确,一般在第二次发DMA后,DPC做CommonBuffer拷贝到用户缓存时机器遇到重启。 请问这样问题出在哪里?是否有更好的办法? |
|
沙发#
发布于:2007-04-16 23:07
你如果结束了这个IRP就会这样.
|
|