阅读:709回复:1
DPC和系统线程的执行优先的问题!
同一块PCI卡上有两个地址空间要进行不同的操作,一个数据操作要求在中断的触发下及时将数据输出,另一个操作则由APP随机的输出数据。
从要求上看,需要在驱动中将中断触发输出操作的优先提高,我想把它放在DPC例程中执行,而APP随机输出数据的操作,放在系统线程中执行。WDM开发指南上称DPC的优先级高于系统线程,这是不是就意味着DPC上的操作可以将系统线程挂起?因为我需要传输的数据量都比较大,如果DPC不能挂起系统线程,则在两个硬中断间隔里无法完成第一个操作所需要的数据输出任务。 谢谢 |
|
|
沙发#
发布于:2003-05-21 16:10
1、dpc执行在IRQL DISPATCH_LEVEL上,而用户模式程序执行在PASSIVE_LEVEL上,可以被任何执行在高于该IRQL上的活动抢先。
2、当IRQL级高于或等于DISPATCH_LEVEL级时线程切换停止,无论当前活动的是什么线程都将保持活动状态直到IRQL降到DISPATCH_LEVEL级之下。 因此,如果你的app操作执行在DISPATCH_LEVEL以下的话,可以达到你的要求 |
|
|