阅读:1340回复:5
一个分发例程是不是一个独立的线程
每一个分发例程是不是属于一个独立的线程?还是说它只是依附于当前的线程而执行的呢?这就是常说的nonarbitrary context,是吗?
|
|
沙发#
发布于:2002-08-13 17:21
是依附于当前的线程而执行的
|
|
|
板凳#
发布于:2002-08-13 21:22
你所说的分发例程是不是指的IRP_MJ_WRITE等等所对应的例程,那他是在驱动程序的主线程中的;但象一些网络驱动,如passthru中的PtReceive与MPSend好象就不是一个线程,但我也并不清楚他们与驱动程序主线程之间的关系(怎么说windows呢,还是学学Linux吧)。
|
|
地板#
发布于:2002-08-14 08:21
多谢斑竹 :) :) :)
|
|
|
地下室#
发布于:2002-08-14 13:02
这也就是说它所有的例程是在一个线程中的。但是如果出现这种情况呢:
一个例程调用KeWaitForSingleObject等待某个事件的出现,于是这个线程被阻塞。另一个在同一个驱动程序里例程要调用KeSetEvent以使那个事件出现,但是这个线程被阻塞了,后一个例程就不会被调用,事件也不会出现,那么这个线程不就一直在等待吗? 我觉得wdm驱动只有在多个处理器的环境下才比较好理解,一到单处理器的环境下,我就有很多问题想不明白了,是不是这样的? |
|
5楼#
发布于:2002-08-15 15:21
up
|
|