lvhaow
驱动小牛
驱动小牛
  • 注册日期2001-10-31
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分44分
  • 威望35点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:709回复:1

DPC和系统线程的执行优先的问题!

楼主#
更多 发布于:2003-05-21 14:01
同一块PCI卡上有两个地址空间要进行不同的操作,一个数据操作要求在中断的触发下及时将数据输出,另一个操作则由APP随机的输出数据。
从要求上看,需要在驱动中将中断触发输出操作的优先提高,我想把它放在DPC例程中执行,而APP随机输出数据的操作,放在系统线程中执行。WDM开发指南上称DPC的优先级高于系统线程,这是不是就意味着DPC上的操作可以将系统线程挂起?因为我需要传输的数据量都比较大,如果DPC不能挂起系统线程,则在两个硬中断间隔里无法完成第一个操作所需要的数据输出任务。

谢谢
lvhaow
mailme
驱动老牛
驱动老牛
  • 注册日期2001-05-21
  • 最后登录2010-02-25
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-05-21 16:10
1、dpc执行在IRQL DISPATCH_LEVEL上,而用户模式程序执行在PASSIVE_LEVEL上,可以被任何执行在高于该IRQL上的活动抢先。

2、当IRQL级高于或等于DISPATCH_LEVEL级时线程切换停止,无论当前活动的是什么线程都将保持活动状态直到IRQL降到DISPATCH_LEVEL级之下。

因此,如果你的app操作执行在DISPATCH_LEVEL以下的话,可以达到你的要求
早起早睡 精神百倍
游客

返回顶部