【问题标题】:Writing a keyboard device driver编写键盘设备驱动程序
【发布时间】:2011-04-01 11:01:54
【问题描述】:

我想知道是否有人有编写键盘设备驱动程序的经验。我知道键盘中断如何工作的基础知识,但并不真正了解所有细节。它困难吗?对一个人来说太难了?

我问这个是因为我最近购买了一个 Apple 键盘,而 windows 驱动程序似乎无法识别很多键。此外,如果您知道比编写驱动程序更简单的解决方案来解决这个问题,我也将不胜感激。 (我已经试过SharpKeys,好像是windows驱动的问题,它不能识别某些扫描码)

【问题讨论】:

  • 您可以尝试看看是否可以使用与 BootCamp 捆绑的驱动程序。
  • 我认为 BootCamp 不是免费的?
  • 糟糕的建议,怎么会有人学到任何东西。

标签: keyboard driver


【解决方案1】:

以下是编写 Windows 设备驱动程序所需的内容:

如果您可以找到非常相似的驱动程序或其他平台上的驱动程序的来源,这可能会变得可行,否则......

如果您对设备驱动程序感兴趣,请尝试从编写纯软件驱动程序开始。它很可能只是一个“玩具”,但是您可以在内核中做一些非常简洁的东西,所以也许值得拥有一个玩具驱动程序。您可以使用 IOCTL 在用户模式 ​​.exe 和驱动程序之间进行通信。也许最终您可以将其更新为纯软件键盘模拟驱动程序,然后尝试将其升级为您想要的实际键盘设备驱动程序。

找到一个关于纯软件键盘驱动程序的帖子: http://www.osronline.com/showthread.cfm?link=119885

也许这很有用:http://www.osronline.com/ddkx/intinput/i8042ref_9eb6.htm

更新:Hyper-V 可供所有 Windows 8 用户使用,并且应该在很大程度上消除“第二台 PC”的要求。您可以在 VM 上运行驱动程序并将内核调试器连接到它。

【讨论】:

  • “我认为你最好对驱动程序进行逆向工程......”。我将如何为华为 MateBook X Pro 的键盘驱动程序执行此操作?我一直对学习驱动程序编程很感兴趣,所以我想尝试将其作为一种学习体验,同时也调整一些我不喜欢原生驱动程序的东西。对于具有中级 C++ 知识但没有任何驱动程序或内核经验的人来说会不会很困难?
猜你喜欢
  • 2014-02-26
  • 1970-01-01
  • 2020-01-24
  • 2016-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-23
  • 1970-01-01
相关资源
最近更新 更多