我的应用程序需要作为一个虚拟操纵杆(想象一下,使用鼠标拖动一个平方并将其转换为模拟操纵杆的输出),并通过网络将一些按键发送到驱动程序将接收该输入的另一台计算机.
我只需要支持XP,Vista和Win7.
也许它可以在没有写驱动程序的情况下完成.我尝试发送与SendKey()的按键似乎工作,但不知道如何模拟模拟操纵杆.
我已经下载了VDK并且正在阅读我能找到的所有内容,但还有很多我还不明白的东西.你能指出我正确的方向吗?
>我应该建立一个内核模式还是用户模式驱动?
我的驱动程序可以作为网络上的应用程序的服务器吗?
>你知道很好的教程/书籍/样本,可以帮助我吗?
谢谢
首先,您必须在计算机(或网络)和正在控制的操纵杆设备之间具有某种接口.
如果它涉及到定制硬件来控制模拟操纵杆(如控制气动或液压或某些东西,而不仅仅是PC游戏操纵杆类型的东西),那么是的,你几乎肯定需要一个驱动程序来允许网络应用程序移动机器人手臂,或任何东西)将移动该操纵杆.
如果您能够从方程式中移除物理操纵杆,也许您可以编写模拟用于插入操纵杆(操纵杆/串行端口)的输入的软件,或者完全模拟(一个相当简单的驱动程序可以做的)这个).如果操纵杆使用标准通信接口(如RS232),则可以完全完成此操作,因为存在可以处理所有这些操作的库,并且可以设置与您尝试通信的任何内容无法区分的虚拟COM端口.
目前,您可以在司机开发上购买的最好的书是Developing Drivers with the Windows Driver Foundation
Rootkits: Subverting the Windows Kernel是另一本伟大的书,但并没有涵盖很多较新的WDF内容.它具有更多的安全重点,但是在设备驱动程序上有一些令人敬畏的章节,具有完全勺子的示例,以一种非常方便的方式将其打破.