drank
驱动牛犊
驱动牛犊
  • 注册日期2002-05-21
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1301回复:8

请帮助我理解中断

楼主#
更多 发布于:2003-02-22 21:46
通常,在设备管理中看到的中断号, 比如主硬盘通道是14,副硬盘通道是15, 键盘是1这个中断号在 irql中是怎么对应的???

中断矢量是什么东西?? 派什么用的????

中断的的边缘触发和水平触发对于驱动会有什么样的影响????

低层中断捕捉函数捕捉到的数据,会流经高层驱动的完成例程而返回给用户态应用程序吗????  如过是这样, 我应该在什么IRP上设置完成例程来过滤这些低层中断函数捕捉到的数据????

问题比较多, 请高手们一一指点了..

[编辑 -  2/22/03 by  drank]

[编辑 -  2/28/03 by  drank]

[编辑 -  2/28/03 by  drank]
drank
驱动牛犊
驱动牛犊
  • 注册日期2002-05-21
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-02-25 11:18
???????
X_ray
驱动中牛
驱动中牛
  • 注册日期2003-02-03
  • 最后登录2004-07-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-02-25 13:15
在设备管理中看到的中断号是硬件中断号,它与CPU的中断矢量编号差8。硬件中断号0-7加8,8-15加???,记不得了。

中断矢量就是中断后的程序入口地址。

中断的的边缘触发类似单次触发,电平触发类似永久触发。

低层中断捕捉函数捕捉到的数据,会流经高层驱动的完成例程而返回给用户态应用程序吗???? 一般不这么做。因为中断占用时间越短越好,所以一般的做法是把数据放在指定的地点,然后异步通知应用程序。
yuri69
驱动小牛
驱动小牛
  • 注册日期2002-07-12
  • 最后登录2005-12-31
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-02-25 13:15
全你看看微机原理吧。

这里是讨论驱动的,不是教学的。
我不会停止对你的思念,就像呼吸一样,我不去特意的想,但是,只能屏息,而不可能停止
drank
驱动牛犊
驱动牛犊
  • 注册日期2002-05-21
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-02-25 13:58
谢谢X_ray的解答
    ----低层中断捕捉函数捕捉到的数据,会流经高层驱动的完成例程而返回给用户态应用程序吗???? 一般不这么做。因为中断占用时间越短越好,所以一般的做法是把数据放在指定的地点,然后异步通知应用程序。----
    键盘驱动是这样工作的吗?  在这中工作方式下, 我怎样能控制键盘输入的数据呢?

对于:  设备管理中看到的中断号与irql的对应关系,谁再来清楚的解释一下啊???
drank
驱动牛犊
驱动牛犊
  • 注册日期2002-05-21
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-02-26 14:58
???
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
6楼#
发布于:2003-02-26 19:39
通常,在设备管理中看到的中断号, 比如主硬盘通道是14,副硬盘通道是15, 键盘是1这个中断号在 irql中是怎么对应的???

中断矢量是什么东西?? 派什么用的????

中断的的边缘触发和水平触发对于驱动会有什么样的影响????

低层中断捕捉函数捕捉到的数据,会流经高层驱动的完成例程而返回给用户态应用程序吗????  如过是这样, 我应该在什么IRP上设置完成例程来过滤这些低层中断函数捕捉到的数据????

问题比较多, 请高手们一一指点了..

[编辑 -  2/22/03 by  drank]

硬件的都在DIRQL上。
边缘(edge)的不能共享,水平(level)的可以。ISA的是边缘,PCI的是水平。
tjm
tjm
驱动小牛
驱动小牛
  • 注册日期2002-05-18
  • 最后登录2004-10-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-02-26 19:57
学习
drank
驱动牛犊
驱动牛犊
  • 注册日期2002-05-21
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-02-27 08:58
谈一点自己对软件中断的迷惑
软件中断应该是由软件产生的..... 什么样的软件能产生软中断??
应用程序好象不行,驱动程序应该可以的,内核态的服务应该也可以的,BIOS是不是也可以呢??? 如果BIOS可以的话,它将中断谁???

软件的中断号是由谁来指定的??
游客

返回顶部