simonyy
驱动牛犊
驱动牛犊
  • 注册日期2002-06-26
  • 最后登录2003-02-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:998回复:0

DS开发PCI驱动:ISR 和 DPC求教

楼主#
更多 发布于:2003-02-27 11:20
我的驱动中有这样一段代码,不知为什么ISR调用的DPC根本就没有被执行,请执教啊。

VOID MyDevice::DpcFor_Irq(PVOID Arg1, PVOID Arg2)
{
// 中断处理(略)

// TODO: Enable further interrupts on the device.
// 这里开中断

UNREFERENCED_PARAMETER(Arg1);
UNREFERENCED_PARAMETER(Arg2);
}

BOOLEAN MyDevice::Isr_Irq(void)
{
//判断是否是我们的卡发出的中断 不是就返回FALSE

//关中断

if (!m_DpcFor_Irq.Request(NULL, NULL))
{
}

return TRUE;
}
///////////////////////////////////////////////////////
上面是没有IRP队列的,有队列时,不知该如何处理,就是怎么处理DS的向导在DPC中生成那部分代码。

KIrp I(m_DriverManagedQueue.CurrentIrp());
I.Status() = STATUS_SUCCESS;
I.Information() = 0;
m_DriverManagedQueue.PnpNextIrp(I);
///////////////////////////////////////////////////////
还有就是有和没有这个队列有什么区别?

请大侠赶紧救命,我已经把我仅有分数都贡献出来了
游客

返回顶部