阅读:998回复:0
DS开发PCI驱动:ISR 和 DPC求教
我的驱动中有这样一段代码,不知为什么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); /////////////////////////////////////////////////////// 还有就是有和没有这个队列有什么区别? 请大侠赶紧救命,我已经把我仅有分数都贡献出来了 |
|