阅读:1782回复:8
如何让中断通知应用程序?
在2K下的内核模式驱动程序中,我知道驱动程序可以通过
DeviceIoControl与应用程序共用一个事件对象来通知应 用程序,但中断产生后,在ISR中怎样通知应用程序呢? KeSetEvent只能运行在<=DISPATCH_LEVEL级上,怎么办? 如果用事件的方法不行,还有没有别的方法? |
|
沙发#
发布于:2002-09-30 11:38
在DPC里面可以用。
|
|
板凳#
发布于:2002-09-30 11:44
Yes, DPC
|
|
|
地板#
发布于:2002-09-30 11:53
我知道DPC里可以用,但我担心第一个DPC还在队列中时,
第二个中断来了,那第二个DPC就不能入队(是这样的吧?), 那第二个中断就不能通知应用程序。 |
|
地下室#
发布于:2002-09-30 15:45
如果真是这样子,看看你的硬件设计的有没有问题。
|
|
5楼#
发布于:2002-09-30 16:41
Re: 如果真是这样子,看看你的硬件设计的有没有问题。
~~~~~~~~~~~~~~~~~~~~~~ “DPC调度”就是这样,跟硬件扯不上什么关系吧 [编辑 - 9/30/02 by ckgb] |
|
6楼#
发布于:2002-09-30 17:50
DPC的确存在此问题,因此硬件中断频率不能太高,一般在100KHz以下系统都能处理的过来,当然和处理器、内存等配置有关。
其实如果中断太高,有时就连ISR也会调度不过来。所以ISR并不比DPC好很多,只要你的DPC不是太占时间。 |
|
|
7楼#
发布于:2002-09-30 18:15
DPC的确存在此问题,因此硬件中断频率不能太高,一般在100KHz以下系统都能处理的过来,当然和处理器、内存等配置有关。 讲得非常好,概念很清晰。thanks! 是不是关于“中断通知应用程序”的问题就只能这样解决了? |
|
8楼#
发布于:2002-10-07 21:53
[quote]DPC的确存在此问题,因此硬件中断频率不能太高,一般在100KHz以下系统都能处理的过来,当然和处理器、内存等配置有关。 讲得非常好,概念很清晰。thanks! 是不是关于“中断通知应用程序”的问题就只能这样解决了? [/quote] 是的! |
|