S.l.e!ep.¢%

像打了激速一样,以四倍的速度运转,开心的工作
简单、开放、平等的公司文化;尊重个性、自由与个人价值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

Raw Input Thread 鼠标事件

Posted on 2010-01-12 00:05 S.l.e!ep.¢% 阅读(961) 评论(0)  编辑 收藏 引用 所属分类: RootKit

Raw Input Thread  鼠标事件

 
经查资料得如下信息:
1)操作系统通过RIT(raw input thread,RIT)等待系统硬件输入队列(system hardware input queue,SHIQ)的消息,一旦鼠标或键盘发生操作,系统就向SHIQ添加一条硬件事件,这时RIT将被唤醒,并从SHIQ中取出这个事件,转换成适当的WM_KEY***、WM_?BUTTON***、WM_MOUSEMOVE等消息添加到适当线程消息队列(VIQ)中,RIT判断适当线程的机制:
  1.对于鼠标消息,RIT只是确定是哪一个窗口在鼠标光标之下。利用这个窗口,RIT调用GetWindowThreadProcessID来确定是哪一个线程建立了这个窗口,那么就把消息发送到这个线程的线程消息队列(VIQ)中。
  2.对于按键消息,在 任何时刻只有一个线程与RIT“连接”,与之相连的这个线程称为前景线程(foreground thread),也就是说RIT将把消息发送到建立当前获得焦点的窗口的线程的线程的线程消息队列(VIQ)中。

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理