阅读:822回复:2
为什么申请两个中断,只能成功分配一个!
驱动类型:NT
开发工具:DS 总线:ISA 程序如下: /////////////////////////////////设置中断1///////////////////////////////////// if (theRequest.Assignments() == NULL) { t << \"Resource assignment failed for IRQ\\n\"; Invalidate(); return STATUS_RESOURCE_TYPE_NOT_FOUND; } else { //初始化中断对象 status = m_Irq1.InitializeAndConnect( theRequest.Assignments(), LinkTo(Isr_Irq1), this ); t<<\" 返回状态:\"<<status<<\"\\n\"; //初始化是否成功 if (!NT_SUCCESS(status)) { Invalidate(); return status; } } //设置DPC用于中断处理过程 m_DpcFor_Irq1.Setup(LinkTo(DpcFor_Irq1), this); /////////////////////////////////设置中断2///////////////////////////////////// if (theRequest.Assignments() == NULL) { t << \"Resource assignment failed for IRQ\\n\"; Invalidate(); return STATUS_RESOURCE_TYPE_NOT_FOUND; } else { // t<<\"succeed assigned source:\"<<(ULONG)<<\"\\n\"; //初始化中断对象 status = m_Irq2.InitializeAndConnect( theRequest.Assignments(), LinkTo(Isr_Irq2), this );//在这里发生错误 //初始化是否成功 if (!NT_SUCCESS(status)) { t<<\" 无效:\"<<status<<\"\\n\"; Invalidate(); return status; } } //设置DPC用于中断处理过程 m_DpcFor_Irq2.Setup(LinkTo(DpcFor_Irq2), this); 两个中断都能从系统中成功申请到,但只能分配第一个中断,第二个中断在它的初始化和连接处发生错误,这是什么原因?? |
|
|
沙发#
发布于:2003-04-16 16:18
你查看一下错误返回码是什么?
大概你的硬件不支持两个中断吧! |
|
板凳#
发布于:2003-04-16 16:53
我申请成功,也就是说,两个中断和系统中存在的其他中断不发生冲突!由于ISA的特性,在申请资源和分配资源的时候可以不插入我的设备,所以楼上大哥说的硬件不支持两个中断,我觉得是不对的!
返回的错误代码是 0xc000000d. |
|
|