阅读:1066回复:6
中断和DPC选择的问题
一个PCI设备的WDM驱动,有两中情况分别会引起中断,并且需要不同的处理,一个是写,一个是读。我不知道采用以下哪种方案好一些,请大虾们指点:
方案1:写两个DPC,在ISR中判断进哪个DPC,然后调用不同DPC。 如果用此方案,假如在DPC还没有执行或者没有执行完时,又来中断,书上说后来的DPC会被拒绝,又说如果中断发生的间隔很短的话,DPC可能运行两次(Chris Cant Windows WDM设备驱动程序开发指南P291),我有些迷惑。 还有基本DPC对象和CUSTOM DPC有什么不同,为什么调用函数都不一样。 方案2:只用一个DPC,在ISR中根据不同中断设置设备扩展中不同标志位,在DPC中根据标志位来决定做什么操作。 假如写DPC等待执行过程中又来读操作的中断,进ISR,设置读中断标志位,调用DPC,被拒绝。那么当已经排队的那个DPC执行时,其FDO参数的设备扩展中相应于后一个读中断的位应该是多少呢? |
|
最新喜欢:mapofl |
沙发#
发布于:2002-12-09 18:58
用一个足够了
|
|
|
板凳#
发布于:2002-12-09 19:49
用一个足够了 那么当一个DPC没有解决,第二个中断又来了的问题怎么办? |
|
地板#
发布于:2002-12-10 21:38
[quote]用一个足够了 那么当一个DPC没有解决,第二个中断又来了的问题怎么办? [/quote] 你的中断速度有多快,担心这样 你可以在dpc的最后在开启中断标志 |
|
|
地下室#
发布于:2002-12-10 21:52
中断倒不一定很频繁,但是时间不确定,我怕它来的不是时候,导致应有的读操作未做。应用一个DPC试试看吧。
兵马桶上的那位可是你? :D |
|
5楼#
发布于:2002-12-11 01:09
用一个dpc就可以了!!你可以在需要的时候插入一个dpc队列
我做的板子同时处理4个中断,都没有问题!!放心使用好了!!祝你好运!!朋友! 有用的话别忘了给分!! |
|
6楼#
发布于:2002-12-11 11:47
中断倒不一定很频繁,但是时间不确定,我怕它来的不是时候,导致应有的读操作未做。应用一个DPC试试看吧。 如果中断不频繁的话,不用担心,另外如果你还是担心的话,那就在dpc结束的时候再打开中断屏蔽 it is me in bmy :D |
|
|