CHYGO
驱动牛犊
驱动牛犊
  • 注册日期2008-07-10
  • 最后登录2009-08-07
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望45点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1508回复:1

菜鸟求助关于DMA的问题,急!

楼主#
更多 发布于:2008-07-21 12:15
问题描述: 环境: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。

请问这个问题怎么解决?
CHYGO
驱动牛犊
驱动牛犊
  • 注册日期2008-07-10
  • 最后登录2009-08-07
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望45点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-07-24 17:10
这个问题我已经解决了~。。。
游客

返回顶部