guolin
驱动牛犊
驱动牛犊
  • 注册日期2002-08-18
  • 最后登录2003-04-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1202回复:4

设备扩展是否需要进行保护???

楼主#
更多 发布于:2003-01-09 11:07
小弟有一驱动的分发例程比如

   xxxdispatchread
{
   ......
   devext->count++;

   setcompeletroutine...

   iomarkpending

  
   kdprint(devext->count);

   return STATUS_PENDING;
}


xxxcomproutine(..)
{
....
   devext->count--;
...
}

假如devext->count = intval 在刚进入xxxdispread时
想请问各位大侠 , xxxdispread打印出来的值是否就是会等于intval+1 ,还是这个例程可以重入而导致这个值并不是所预料的那样?感谢所有关注!

最新喜欢:

okincnokincn
lu0
lu0
论坛版主
论坛版主
  • 注册日期2001-06-10
  • 最后登录2016-04-05
  • 粉丝2
  • 关注0
  • 积分-6311分
  • 威望21111点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-01-09 12:32
难说.你的代码是可重入的.在第2次被调用时鬼才知道xxxcomproutine是否已经被调用过.
Regards, Lu Lin Webmaster of Inside Programming http://www.lu0s1.com
guolin
驱动牛犊
驱动牛犊
  • 注册日期2002-08-18
  • 最后登录2003-04-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-01-09 13:47
斑竹地意思就是 , 我不能断定打印出来的值 , 因为他随时有可能被改变 , 是吗?
guolin
驱动牛犊
驱动牛犊
  • 注册日期2002-08-18
  • 最后登录2003-04-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-01-09 16:06
可以从入是不是说 ,就是没有完成例程中的--操作 , 就是xxxdispatchread本身也有可能在devext->count++ 到打印这段时间内,被重入 ,导致又进行了devext->count++ , 这样当打印的时候就发现值比预料的大2 ,是吗??
yyhabc
驱动小牛
驱动小牛
  • 注册日期2003-01-06
  • 最后登录2013-03-18
  • 粉丝0
  • 关注0
  • 积分327分
  • 威望47点
  • 贡献值0点
  • 好评度21点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-01-09 21:03
在ddk中,明确指明,在访问公共变量的时候必须进行保护。你这个变量没有保护。
游客

返回顶部