stoneyr
驱动牛犊
驱动牛犊
  • 注册日期2002-01-13
  • 最后登录2007-10-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1340回复:5

一个分发例程是不是一个独立的线程

楼主#
更多 发布于:2002-08-13 13:20
每一个分发例程是不是属于一个独立的线程?还是说它只是依附于当前的线程而执行的呢?这就是常说的nonarbitrary context,是吗?
caosuricheng
驱动中牛
驱动中牛
  • 注册日期2002-04-16
  • 最后登录2004-09-04
  • 粉丝0
  • 关注0
  • 积分-10分
  • 威望-1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-08-13 17:21
是依附于当前的线程而执行的
我是草肃日成 有人认识我吗?
blue
驱动大牛
驱动大牛
  • 注册日期2001-04-25
  • 最后登录2010-10-15
  • 粉丝0
  • 关注0
  • 积分55分
  • 威望12点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-08-13 21:22
你所说的分发例程是不是指的IRP_MJ_WRITE等等所对应的例程,那他是在驱动程序的主线程中的;但象一些网络驱动,如passthru中的PtReceive与MPSend好象就不是一个线程,但我也并不清楚他们与驱动程序主线程之间的关系(怎么说windows呢,还是学学Linux吧)。
caosuricheng
驱动中牛
驱动中牛
  • 注册日期2002-04-16
  • 最后登录2004-09-04
  • 粉丝0
  • 关注0
  • 积分-10分
  • 威望-1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-08-14 08:21
多谢斑竹 :) :) :)
我是草肃日成 有人认识我吗?
stoneyr
驱动牛犊
驱动牛犊
  • 注册日期2002-01-13
  • 最后登录2007-10-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-08-14 13:02
这也就是说它所有的例程是在一个线程中的。但是如果出现这种情况呢:
一个例程调用KeWaitForSingleObject等待某个事件的出现,于是这个线程被阻塞。另一个在同一个驱动程序里例程要调用KeSetEvent以使那个事件出现,但是这个线程被阻塞了,后一个例程就不会被调用,事件也不会出现,那么这个线程不就一直在等待吗?
我觉得wdm驱动只有在多个处理器的环境下才比较好理解,一到单处理器的环境下,我就有很多问题想不明白了,是不是这样的?
stoneyr
驱动牛犊
驱动牛犊
  • 注册日期2002-01-13
  • 最后登录2007-10-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-08-15 15:21
up
游客

返回顶部