tjm
tjm
驱动小牛
驱动小牛
  • 注册日期2002-05-18
  • 最后登录2004-10-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1227回复:1

关于系统线程

楼主#
更多 发布于:2003-03-05 19:48
我的驱动有一个系统线程,只有一个线程函数,其中的CONTEXT参数传入DEVICEEXTENSION。线程函数中是一个while循环,在其中用kewaiteforsingleobject来等待一个event。这是标准做法。
我的驱动是WDM的可以创建多个设备,每个设备都创建一个系统线程。
我的问题是:
我只有一个线程函数,多个线程都是这一个函数,是不是有问题牙?
因为第一个设备创建线程是传入自己的DEVICEEXTENSION,然后线程就处于while循环中了,第二个设备又创建线程,他们用的是同一段代码(线程函数),把自己的DEVICEEXTENSION传进去,那么这段代码中的数据就不是第一个DEVICEEXTENSION了,这不是乱了马?
simba
驱动牛犊
驱动牛犊
  • 注册日期2002-01-28
  • 最后登录2009-02-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-03-06 21:17
没有关系的,事实上运行中的代码和静态的代码是两回事,
线程对象维护了自己的运行环境、状态,各用各的context
不会有冲突,不过要注意一点就是关于临界区,有可能部分代码
不能重入,那么就要上锁了。

记得filedisk源码就是每个device object都对应了
用同一段代码做的线程,你不妨看看先。
游客

返回顶部