当前位置: 代码迷 >> 驱动开发 >> 驱动程序能不能踊跃和应用程序通信
  详细解决方案

驱动程序能不能踊跃和应用程序通信

热度:159   发布时间:2016-04-28 10:12:59.0
驱动程序能不能主动和应用程序通信
我的电脑有两个键盘一起使用。
我为其中一个做了过滤驱动。

驱动程序的构思是这样的。

屏蔽掉该键盘的所有信息,把用户按下的按键信息拦截下来,不再向下发送,
而是把这些信息发送给某个应用程序,让这个应用程序来处理这些按键信息。
从而达到把整个键盘的每一个按键当做热键(HotKey)来使用的目的。

现在过滤驱动已经能记录键盘按键信息了,但是,驱动程序怎么主动的向某个应用程序发送这些消息?
------解决方案--------------------
个人感觉,这个应该在驱动中采用win32的事件通知来完成这个功能。
你的应用程序首先创建一个事件,把该事件句柄传递给过滤驱动,然后等待驱动程序发送
事件消息即可。
驱动程序通过调用ObReferenceObjectByHandle函数,来获取这个事件的内核对象指针,就
可以设置事件的信号状态,触发应用程序。
这样应该就可以达到你所要求的效果。
  相关解决方案