阅读:986回复:0
新问题,进去瞧瞧:9054DMA传输问题
用ds编写PCI9054的DMA传输,先发现跟踪到以下驱动代码处黑屏重启:
m_CurrentTransfer = new(NonPagedPool) KDmaTransfer(this, &m_Dma); if ( m_CurrentTransfer == NULL ) { status = STATUS_INSUFFICIENT_RESOURCES; I.Information() = 0; I.Status() = status; PnpNextIrp(I); } status = m_CurrentTransfer->Initiate( I.Mdl(), FromDeviceToMemory, LinkTo(OnDmaReady), NULL, FALSE ); 这段代码是在应用程序调用驱动后马上做的。其中,m_CurrentTransfer 定义KDmaTransfer* m_CurrentTransfer; OnDmaReady是回调函数,当运行到以上Initiate(...)时就重启了,请问各位高手是何原因,有什么办法解决??(这是应用程序为数据缓冲区,共用缓冲区也试过,同样) 谢谢各位浏览及浏览留言者! |
|