模拟发送按键

leftbackfielder 2014-03-25 01:50:11
1.创建一个键盘设备
2.在IOCTL_INTERNAL_KEYBOARD_CONNECT中,获取KeyboardClassServiceCallback回调函数地址
3.我的电脑是THINKPAD T430,里面有一个触摸板的驱动:Syntp.sys,这个驱动下面的设备也会附加到
我创建的键盘设备上,这个时候,我得到的KeyboardClassServiceCallback地址就不对了,我再模拟
发送按键不管用。(设备的顺序是这样的:我的设备在最底下,中间是syntp.sys的设备
最上面是keyboardclass中的键盘设备)

我的猜想:syntp.sys下面是一个过滤设备,HOOK了键盘设备的KeyboardClassServiceCallback,然后
把syntp.sys中的地址和设备传给了我。同时syntp.sys里面没有对相应逻辑的处理。

问题:怎么能够得到正确的回调函数地址 或者 正常模拟发送按键信息

PS:在网上看到通过寻找keyboardclass下面的设备扩展,找到这个地址的,这种方法兼容性好吗?
...全文
139 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
leftbackfielder 2014-03-27
  • 打赏
  • 举报
回复
引用 1 楼 woshi_ziyu 的回复:
PS:在网上看到通过寻找keyboardclass下面的设备扩展,找到这个地址的,这种方法兼容性好吗? --------------------- 可以试一下
恩。我看了一下网上的那种办法, 只是机器上有一个键盘的好使。 我现在要考虑多个键盘的情况~ 我在网上找到了一个kbdfilter的例子,我看他的里面就是HOOK了这个回调函数,然后,在自己的驱动里面保存住原有的回调函数地地址。
woshi_ziyu 2014-03-26
  • 打赏
  • 举报
回复
PS:在网上看到通过寻找keyboardclass下面的设备扩展,找到这个地址的,这种方法兼容性好吗? --------------------- 可以试一下

21,597

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧