阅读:3016回复:4
mouse 驱动程序是如何信息传到系统的?sendmessage(wm_lbuttonup)?
mouse 驱动程序是如何信息传到系统的?
ddk的sample我该看那个?mouclass里面没看到类似sendmessage(wm_lbuttonup)之类的东东啊? |
|
|
沙发#
发布于:2001-09-21 16:57
是不是INSIDE WIN2000也没有此答案啊.:)
WIN32K.SYS和CSRSS.EXE紧密协作. 对KEYBOARD和MOUSE进行独占访问. 当鼠标键盘有操作时,WIN32K.SYS负责将消息POST出来. 但是这不是通过SENDMESSAGE只类的操作. WIN32K.SYS经过一些过滤. 将过滤后的消息放到ACTIVE的线程消息队列中. |
|
|
板凳#
发布于:2005-08-06 11:44
能不能说详细点啊?
|
|
|
地板#
发布于:2005-08-06 20:51
下面是引用薛宗棋于2001-09-17 11:51发表的mouse 驱动程序是如何信息传到系统的?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。鼠标和键盘的处理明显比其他输入设备复杂和不规范化,不模块化,我猜是历史遗留问题 |
|
|
地下室#
发布于:2005-08-07 10:33
过程确实复杂,不透明
个人认为肯定没有使用SendMessage |
|
|