escape
驱动老牛
驱动老牛
  • 注册日期2002-02-01
  • 最后登录2004-08-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1131回复:3

晷於

楼主#
更多 发布于:2002-04-09 09:48
 :( :( :( :( :( :( :( :(
LIUTANG
驱动大牛
驱动大牛
  • 注册日期2001-03-30
  • 最后登录2020-12-27
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望58点
  • 贡献值0点
  • 好评度12点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2002-04-09 18:59
可以在驱动程序里作点手脚,不让它重入
escape
驱动老牛
驱动老牛
  • 注册日期2002-02-01
  • 最后登录2004-08-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-04-09 13:12
 :( :( :( :( :( :(
果然是高手 !
 :( :( :( :( :( :(
Tom_lyd
驱动大牛
驱动大牛
  • 注册日期2001-09-02
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-04-09 10:35
    驱动程序必须被设计成可重入的,但这并不是说它不能有全局变量,只是说你在使用全局变量的时候,必须考虑同步,要串行化对全局资源的访问。
    一般的同步方法有:
    1.自旋锁:采用暂时提供IRQL的方法获得对某一资源的独立访问权。
    2.临界区:CriticalSection.这一般用在ISR中
    3.同步对象:包括EVENT、MUTEX、Semaphore,其中Mutex又有两种变形:FAST_MUTEX和EXECUTIVE resource.
    DEVICE_OBJECT最先是I/O Manager传给驱动程序,I/O Manager内部已经有IRP的同步机制,所以没有错误。
Tom_lyd
游客

返回顶部