薛宗棋
驱动牛犊
驱动牛犊
  • 注册日期2001-09-15
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:3015回复:4

mouse 驱动程序是如何信息传到系统的?sendmessage(wm_lbuttonup)?

楼主#
更多 发布于:2001-09-17 11:51
mouse 驱动程序是如何信息传到系统的?
ddk的sample我该看那个?mouclass里面没看到类似sendmessage(wm_lbuttonup)之类的东东啊?
no
lu0
lu0
论坛版主
论坛版主
  • 注册日期2001-06-10
  • 最后登录2016-04-05
  • 粉丝2
  • 关注0
  • 积分-6311分
  • 威望21111点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-09-21 16:57
是不是INSIDE WIN2000也没有此答案啊.:)
WIN32K.SYS和CSRSS.EXE紧密协作. 对KEYBOARD和MOUSE进行独占访问. 当鼠标键盘有操作时,WIN32K.SYS负责将消息POST出来. 但是这不是通过SENDMESSAGE只类的操作. WIN32K.SYS经过一些过滤. 将过滤后的消息放到ACTIVE的线程消息队列中.
Regards, Lu Lin Webmaster of Inside Programming http://www.lu0s1.com
linfeng1216
驱动小牛
驱动小牛
  • 注册日期2004-03-10
  • 最后登录2008-12-31
  • 粉丝0
  • 关注0
  • 积分818分
  • 威望89点
  • 贡献值0点
  • 好评度74点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-08-06 11:44
能不能说详细点啊?
这件事很难
seahawk
驱动牛犊
驱动牛犊
  • 注册日期2005-02-13
  • 最后登录2006-03-08
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-08-06 20:51
下面是引用薛宗棋于2001-09-17 11:51发表的mouse 驱动程序是如何信息传到系统的?sendmessage(wm_lbuttonup)?:
mouse 驱动程序是如何信息传到系统的?
ddk的sample我该看那个?mouclass里面没看到类似sendmessage(wm_lbuttonup)之类的东东啊?


具体不清楚,只知道鼠标的顺序是driver->rawinput->DXInput->LLhook->HLhook->TMQ
可是键盘的顺序却是driver->SMQ->LLhook->rawinput->DXInput->HLhook->TMQ

很明显,如果通过这样的传递方式,传递的数据信息要比message要多,所以:
1。决不是通过sendMessage等函数传递的,应该是一个内部多层的传递过程;
2。这个过程不是公开和可以定制的,只有在driver、rawinput、hook等处可以过滤一下。否则就需要拦截windows内部的代码。
3。鼠标和键盘的处理明显比其他输入设备复杂和不规范化,不模块化,我猜是历史遗留问题
傍海渔村酣睡足 斜阳一脉洒千山 鲲鹏不待风潮起 万古江山多寂寥
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-08-07 10:33
过程确实复杂,不透明
个人认为肯定没有使用SendMessage
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
游客

返回顶部