bjab
驱动牛犊
驱动牛犊
  • 注册日期2002-04-06
  • 最后登录2011-06-07
  • 粉丝0
  • 关注0
  • 积分12分
  • 威望35点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
阅读:1414回复:5

请教大虾!驱动程序中的线程和应用程序的线程是同一个吗

楼主#
更多 发布于:2002-07-08 09:16
请问:在应用程序调用驱动程序后,驱动程序中的线程和应用程序的线程是同一个吗?
为什么vxd驱动程序中等待应用程序的事件通知无法实现,用什么办法实现?
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-07-08 09:38
驱动的线程是核心线程,和应用线程不一样
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
bjab
驱动牛犊
驱动牛犊
  • 注册日期2002-04-06
  • 最后登录2011-06-07
  • 粉丝0
  • 关注0
  • 积分12分
  • 威望35点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-07-08 11:34
请问是概念不一样还是实际上就不是同一个线程,多谢!
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-07-08 12:25
请问是概念不一样还是实际上就不是同一个线程,多谢!

贫僧不做驱动,具体我也不清楚。内核线程和普通线程的运行的IRQL起码不一样,普通线程统统是那个什么passive level,而核心线程则高一些了
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
zhang79
驱动牛犊
驱动牛犊
  • 注册日期2001-08-17
  • 最后登录2013-12-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-07-10 20:34
两个线程是同一个线程,只是驱动程序在核心态运行,权限很大。
你可以用SOFTICE跟踪到驱动程序的代码部分,再用ADDR看,地址空间还是用户程序的地址空间。
Tom_lyd
驱动大牛
驱动大牛
  • 注册日期2001-09-02
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-07-10 21:16
这个情况不一定,我认为有的时候可以视为同一线程,有的时候不能视为同一线程。
在有些DISPATCH例程如IRP_MJ_CREATE中,驱动程序依然运行在应用程序的线程上下文环境当中(THREAD CONTEXT),地址空间也是一样的,此时,可以认为是同一者。
而当驱动程序切换入了高的IRQL级别以后,或者进行了异步的操作(比如说运行在完成例程中),线程的上下文环境就被切换了。
Tom_lyd
游客

返回顶部