阅读:1228回复:1
关于系统线程
我的驱动有一个系统线程,只有一个线程函数,其中的CONTEXT参数传入DEVICEEXTENSION。线程函数中是一个while循环,在其中用kewaiteforsingleobject来等待一个event。这是标准做法。
我的驱动是WDM的可以创建多个设备,每个设备都创建一个系统线程。 我的问题是: 我只有一个线程函数,多个线程都是这一个函数,是不是有问题牙? 因为第一个设备创建线程是传入自己的DEVICEEXTENSION,然后线程就处于while循环中了,第二个设备又创建线程,他们用的是同一段代码(线程函数),把自己的DEVICEEXTENSION传进去,那么这段代码中的数据就不是第一个DEVICEEXTENSION了,这不是乱了马? |
|
沙发#
发布于:2003-03-06 21:17
没有关系的,事实上运行中的代码和静态的代码是两回事,
线程对象维护了自己的运行环境、状态,各用各的context 不会有冲突,不过要注意一点就是关于临界区,有可能部分代码 不能重入,那么就要上锁了。 记得filedisk源码就是每个device object都对应了 用同一段代码做的线程,你不妨看看先。 |
|