阅读:1470回复:5
关于中断 屏蔽 开关 断接 的问题
在dos下对于中断的可以通过 sti cli 指令还可以通过屏蔽8259A
的位来进行,当然也可以通过挂接和断开中断服务程序进行 在win32中VxD里面 QuickVxd提供了 VOID VHardwareInt::physicalMask()和 VOID VHardwareInt::physicalUnmask()来进行 那么在KDM和WDM中我怎么设置呢 好像只有 NTSTATUS IoConnectInterrupt( OUT PKINTERRUPT *InterruptObject, IN PKSERVICE_ROUTINE ServiceRoutine, IN PVOID ServiceContext, IN PKSPIN_LOCK SpinLock OPTIONAL, IN ULONG Vector, IN KIRQL Irql, IN KIRQL SynchronizeIrql, IN KINTERRUPT_MODE InterruptMode, IN BOOLEAN ShareVector, IN KAFFINITY ProcessorEnableMask, IN BOOLEAN FloatingSave ); 与 VOID IoDisconnectInterrupt( IN PKINTERRUPT InterruptObject ); 在DS中 是KInterrupt::Connect 与 KInterrupt::Disconnect 有没有简单的方法,直接屏蔽对应IRQ的 谢谢各位大人们 |
|
沙发#
发布于:2004-07-08 10:26
这些不就够用了吗!
|
|
|
板凳#
发布于:2004-07-08 10:34
处理复杂的问题还有简单的方法?
难道这样不够简单? |
|
|
地板#
发布于:2004-07-08 11:35
在DS里面还有一个函数,可以连接和初始化IRQ
|
|
|
地下室#
发布于:2004-07-08 22:50
因为我感觉到在dos 和 vxd下 都似乎对硬件进行操作而在在NT下却要繁琐的挂接和断开中断服务有点得不偿失。
|
|
5楼#
发布于:2004-07-08 22:50
因为我感觉到在dos 和 vxd下 都似乎对硬件进行操作而在在NT下却要繁琐的挂接和断开中断服务有点得不偿失。
可以追加分吗? |
|