jonathanfoo
驱动牛犊
驱动牛犊
  • 注册日期2003-10-13
  • 最后登录2004-06-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1625回复:2

如果CPU正在执行RtlCopyMemory的时候,来了硬件中断,系统如何处理?

楼主#
更多 发布于:2004-04-13 16:20
    如果CPU正在执行RtlCopyMemory的时候,来了硬件中断,
系统如何处理?RtlCopyMemory是否被阻塞?
    如果RtlCopyMemory被阻塞,复制数据操作没有完成,会不会
发生丢失数据的情况啊?

请支招。
newhand
ftaohu
驱动牛犊
驱动牛犊
  • 注册日期2002-02-06
  • 最后登录2009-02-01
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-04-13 17:41
Callers of RtlCopyMemory can be running at any IRQL if both memory blocks are resident. Otherwise, the caller must be running at IRQL < DISPATCH_LEVEL.

硬件设备的中断irql比RtlCopyMemory 的调用者高,所以先响应硬件中断,系统作一次CONTENT切换,将IRQL提升道设备IRQL,执行ISR后将IRQL降 ,再CONTENT切换道RTLCOPYMEMORY继续执行.

你说的这种情况,这需要看你驱动设备怎么取舍了。你可以通过DPC来解决这个问题。ISR作很少事情,可以看看DPC的例子。
敬畏耶和华时智慧的开端,承认至圣者才是悟性。 耶稣说:“我赐给你们一条新命令,乃是要你们彼此相爱,我怎样爱你们,你们也要怎样相爱,你们若有彼此相爱的心,众人就因此认出你们是我的门徒了!”
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2004-04-13 20:08
不会的
游客

返回顶部