qwdrv
驱动大牛
驱动大牛
  • 注册日期2004-03-19
  • 最后登录2005-12-15
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1575回复:12

再问有关中断的问题,很郁闷

楼主#
更多 发布于:2005-01-12 14:42
一个WLAN驱动,需要支持VLIO接口。
1)因为是一个NDIS驱动,需要在DriverEntry里面wrapper。那么入口就不能是XXX_Init()类型,是不是这样的?
2)而且,假设我的中断号能够保证唯一,那么是不是不需要用ISR?看文档上面说,是在不能保证唯一的时候才需要靠ISR中返回某个值来确定调用IST,尤其是PCI的。
3)ISR+IST和miniport_ISRHandler+miniport_HandleInterruptHandler有什么不同?是不是NDIS的ISR调miniport_ISRHandler,然后IST调miniport_HandleInterruptHandler?如果是的话,那么就没有必要自己写ISR和IST了是不是?
4)做接口转换一般需要做些什么改动?
5)是不是可以不指定Sysintr,而在程序里去查询得到?
6)本贴只能给100分,另外开贴给分。
请各位高手们帮帮忙啊。
wwei_wang
驱动大牛
驱动大牛
  • 注册日期2002-06-07
  • 最后登录2006-06-23
  • 粉丝0
  • 关注0
  • 积分77分
  • 威望9点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-01-12 15:00
我来说两句吧:
(1)应该使用DriverEntry函数,在此进行任何通用的与平台相关的初始化;
(2)如果要进行硬件中断处理肯定需要isr,而且如还要做进一步处理的话那么还需要ist。文档的意思是说,对于多个设备共享的中断,在你的设备的isr中要返回与你的ist相关的那个逻辑中断值,只有这样你的ist才会被调用。对于独占的中断(你的情况就是),你的isr中也要返回这个值,只有这样你的ist才会被调用,这个值就是与你的硬件中断相对应的逻辑中断。
(4)你需要做哪些接口转换啊?
(5)Sysintr既可以直接显式指定,也可以在程序里调用相应函数查询得到。




[编辑 -  1/12/05 by  wwei_wang]
Come on, let us drive the world.
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-01-12 15:22
1.网卡驱动是被NDIS WRAPPER和上层隔离的,MINIPORT的驱动需要实现哪些接口兄弟需要看看MSDN的帮助的NIC的文档

2.NIC的ISR始终是要的,你总要有代码首先响应中断并清除,在报告给系统

3.miniport_ISRHandler+miniport_HandleInterruptHandler就是NIC的ISR+IST

4.接口转换?什么接口

5.查询得到SYSINTR需要OEMIOCONTROL支持,如果有就可以

根据地的兄弟们,团结就是力量
qwdrv
驱动大牛
驱动大牛
  • 注册日期2004-03-19
  • 最后登录2005-12-15
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-01-12 15:39
谢谢先。
在http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wceddk5/html/wce50coninterruptnotifications.asp
里面说"You might choose to install an ISR to handle interrupts for the device. This is required if the interrupt is shared between two or more devices, which is a common occurrence with PCI devices"。
这不就是说如果我的中断没有共享的话就可以不用写ISR吗?
而且原来没有用ISR也一样工作呀。
接口是VLIO,有哪位大哥做过吗?
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-01-12 15:51
兄弟,我们最都说干了(我记得说了好多次了喔),真的要ISR,真的,相信e MO错的:((

我还是解释一下吧,PCI总线总共只有4根中断线(没记错的话好像是INTA B C D)而总线上挂的设备可能有很多,所以有些需要共用一个中断信号,这些中断信号全部被连在一起送到中断控制器,当这个中断线上有信号过来,中断控制器将这个请求发送给处理器,处理器执行这个中断信号的中断服务程序,当多个设备共用一个中断的时候,中断服务程序需要能够为每个设备服务,为了满足系统扩展的要求,这个过程被设计成把所有这些设备的中断服务程序串在一起,当中断来后依次调用,那么前面的ISR就需要判断这个中断是不是来自自己的设备,如果是就处理后返回,不是自己的他要告诉系统,这样系统就会顺着这个链继续往下,直到找到提出中断的那个设备。你不写ISR谁来处理你的NIC的中断呢?

你不写isr系统也可以工作,其他设备的isr存在,但你的中断永远不会被响应。


根据地的兄弟们,团结就是力量
qwdrv
驱动大牛
驱动大牛
  • 注册日期2004-03-19
  • 最后登录2005-12-15
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-01-12 15:54
不是不相信,只是没搞懂,想不明白。
呵呵,多谢多谢。
这个帖子没有分了,我再开一个吧。
wwei_wang
驱动大牛
驱动大牛
  • 注册日期2002-06-07
  • 最后登录2006-06-23
  • 粉丝0
  • 关注0
  • 积分77分
  • 威望9点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-01-12 15:55
就是嘛,只要处理硬件中断肯定要有isr,没有isr怎么处理中断?而ist则根据需要可有可无。
Come on, let us drive the world.
qwdrv
驱动大牛
驱动大牛
  • 注册日期2004-03-19
  • 最后登录2005-12-15
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-01-12 16:01
以前没有接触过CE和NDIS,不懂的地方太多了。谢谢两位。
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2005-01-12 16:23
哪里哪里,兄弟谦虚了,我是说我们好像都讨论了好多次了:)))

关键是先想想你的nic的工作过程,你如果有例子可以看看例子里面的isr,然后仿照着做就行了
根据地的兄弟们,团结就是力量
wwei_wang
驱动大牛
驱动大牛
  • 注册日期2002-06-07
  • 最后登录2006-06-23
  • 粉丝0
  • 关注0
  • 积分77分
  • 威望9点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2005-01-12 16:32
大家都太谦虚了 :D :D :D
Come on, let us drive the world.
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2005-01-12 16:47
大家都得好好改改自己的这个毛病了!
根据地的兄弟们,团结就是力量
qwdrv
驱动大牛
驱动大牛
  • 注册日期2004-03-19
  • 最后登录2005-12-15
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2005-01-13 07:14
哈哈,有道理有道理。
dellgao
驱动牛犊
驱动牛犊
  • 注册日期2004-12-31
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分41分
  • 威望15点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2005-01-17 19:44
哈哈,有道理有道理。
游客

返回顶部