阅读:1508回复:1
菜鸟求助关于DMA的问题,急!
问题描述: 环境:XP SP2 , XP DDK , DS 3.1
用的是武安河那本书里面的代码,只改了它里面的涉及FIFO的地址和部分读写的代码,写数据我用的是 void PCI9054Device::SerialWrite(KIrp I) {... m_MemoryRange1_ForBase2.outb(0x0,*pBuffer); } 但是在用DMA读数据的时候,会重启 我用SOFTICE设断点调试后,发现问题出在 void PCI9054Device::SerialRead(KIrp I) { 。。。 status = m_CurrentTransfer->Initiate( I.Mdl(), //Accessor to the IRP field that holds the address of the memory descriptor list. (I.MajorFunction() == IRP_MJ_READ) ? FromDeviceToMemory : FromMemoryToDevice, LinkTo(OnDmaReady) ); //此操作将使系统调用OnDmaReady例程 } ICE显示在initiate不成功,然后在F10一步就直接蓝屏了,说是什么DRIVER_IRQL_NOT_LESS_OR_EQUAL。 请问这个问题怎么解决? |
|
沙发#
发布于:2008-07-24 17:10
这个问题我已经解决了~。。。
|
|