horsedo
驱动小牛
驱动小牛
  • 注册日期2001-11-29
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:2294回复:4

ExAcquireFastMutex ExAcquireResourceExclusiveLite ExAcquireResourceSharedLite的问题

楼主#
更多 发布于:2002-08-07 16:16
ExAcquireFastMutex  
ExAcquireResourceExclusiveLite
ExAcquireResourceSharedLite
等同步机制有问题请教,谢谢
他们都是对共享数据区的访问控制机制
ExAcquireFastMutex  

ExAcquireResourceExclusiveLite
ExAcquireResourceSharedLite
有什么不同吗?看了DDK的文档,还是不太明白
要对全局数据写要用 ExAcquireResourceExclusiveLite
要对全局数据读要用 ExAcquireResourceSharedLite
这两个函数调用前要用KeEnterCriticalRegion 来提升调用者线程的IRQL到 APC_LEVEL
那ExAcquireFastMutex是不是功能更直接,不太明白

 :(
horsedo
驱动小牛
驱动小牛
  • 注册日期2001-11-29
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2002-08-07 16:17
例外哪个大侠可以讲一下在DRIVER中对于全局数据的访问控制方法,
谢谢
bluesky123
驱动牛犊
驱动牛犊
  • 注册日期2002-08-02
  • 最后登录2002-10-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-08-07 16:44
NT/2000下的线程调度是采用时间片方式。而执行调度的线程的中断优先级为DISPASSTURELEVEL,也就是说当你的线程的中断优先级达到DISPASSTURELEVEL。就不存在数据竞争的情况(单CPU中)。STARTIO
就是在这一级别中的。对于多CPU的情况,可以用自旋锁解决
punk
驱动小牛
驱动小牛
  • 注册日期2001-04-07
  • 最后登录2018-06-01
  • 粉丝0
  • 关注0
  • 积分621分
  • 威望164点
  • 贡献值0点
  • 好评度60点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-07-20 09:03
NT/2000下的线程调度是采用时间片方式。而执行调度的线程的中断优先级为DISPASSTURELEVEL,也就是说当你的线程的中断优先级达到DISPASSTURELEVEL。就不存在数据竞争的情况(单CPU中)。STARTIO
就是在这一级别中的。对于多CPU的情况,可以用自旋锁解决

难道两个DISPATCHLEVEL的线程不会并发运行?
不停学习
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
地下室#
发布于:2004-07-21 09:26
ExclusiveLite
SharedLite
还是有区别的,嘿嘿.....
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
游客

返回顶部