阅读:1249回复:6
中断是什么时候连接的
驱动程序应该在什么时候连接中断,操作系统是如何象驱动程序发出中断请求的?病调用中断服务程序的。
|
|
最新喜欢:![]() |
沙发#
发布于:2002-04-11 11:47
不一定要挂接中断。系统给你发的不是真正的中断,而是IRQL。
|
|
|
板凳#
发布于:2002-04-11 14:22
你可以在初始化硬件之后就连接中断,也可以在其他任何时候,(如其他准备工作都做好了,可以开始响应了),这完全看你应用的要求。
中断连接上后,就在内核里注册了你的ISR,在中断向量表中保存了你的ISR的地址。硬件中断产生时,CPU通知内核的中断调度程序,中断调度程序根据IRQL查找中断向量表,找到注册的中断服务例程并调用它。 Is that clear? |
|
|
地板#
发布于:2002-04-11 15:04
用户被禁言,该主题自动屏蔽! |
|
地下室#
发布于:2002-04-12 11:17
驱动程序应该在初始化硬件完毕并配置中断资源之后进行连接,一般来讲,都是在AddDevice这个函数中,当你的设备产生了中断的时候,CPU会按照你配置的中断资源来取得你所设置的中断处理函数,并调用之
:P :P :P |
|
|
5楼#
发布于:2002-04-12 19:35
你应该在StartDevice函数中配置中断资源,使用从CmResourceTypeInterrupt描述符中提取的参数来调用IoConnectInterrupt函数。调用IoConnectInterrupt时,你的驱动程序和设备必须完全准备好,因为中断可能发生在函数返回前,所以通常应该在接近配置过程的结尾处做这个调用。某些设备的硬件特征可以允许驱动程序禁止其硬件中断。如果你的设备有这种特征,你应该在调用IoConnectInterrupt前禁止设备中断,之后再允许设备中断。
|
|
|
6楼#
发布于:2002-04-13 15:17
驱动程序应该在初始化硬件完毕并配置中断资源之后进行连接,当你的设备产生了中断的时候,CPU会按照你配置的中断资源来取得你所设置的中断处理函数,并调用之
|
|