阅读:1880回复:2
如何禁止中断和开启中断?
请教各位大虾,如何用ddk禁止和开启一个中断啊 该如何实现呢。现在是这样的,小弟已经实现了中断向量和连接中断,采用的是中断7,电平触发,但是发现加载驱动后 电脑会死机,经判断基本是中断引起的,于是想在中断响应程序里禁止和开启中断。大概代码如下
DeviceExtension->Level = 7; DeviceExtension->Vector = DeviceExtension->Level; MappedVector = HalGetInterruptVector(Isa, 0, DeviceExtension->Level, DeviceExtension->Vector, &Irql, &DeviceExtension->Affinity); status = IoConnectInterrupt(&DeviceExtension->InterruptObject, // InterruptObject InterruptIsr, // ServiceRoutine DeviceObject, // ServiceContext NULL, // SpinLock MappedVector, // Vector Irql, // Irql Irql, // SynchronizeIrql LevelSensitive, // InterruptMode // Latched, TRUE, // ShareVector DeviceExtension->Affinity, // ProcessorEnableMask FALSE); // FloatingSave |
|
沙发#
发布于:2010-06-04 10:55
我的理解是:如果操作的是真实的硬件,应该看看该硬件的规范(比如往什么寄存器写什么值),来关闭或开始中断。
|
|
板凳#
发布于:2010-06-04 11:43
学习中
|
|