编写设备驱动程序?

5

我想确认我的理解是否正确...

比如说,如果我想要控制鼠标的行为,例如左键打开窗口,右键发送按键'A'等操作。

但是我并不是在应用程序中编写以下内容:

void MouseDown(xxxxEventArgs e, sender object)
{

}

如果我希望完全控制设备的工作方式,那么我需要为其编写驱动程序吗?根据我之前在汇编语言中学到的,要控制设备,我应该需要知道它们的端口以便与设备通信。但是,假设我购买了一个罗技鼠标,我能否自己编写鼠标驱动程序来使用它?
因为我看到一些项目从商店购买了USB网络摄像头,他们可以控制网络摄像头旋转并接收图像,我想知道这是因为网络摄像头提供了API给他们吗?
先行感谢。

可能是可以的,但我认为不会很容易。 - forsvarir
3个回答

4
如果您想完全控制设备,那么确实需要编写设备驱动程序。这是一项不容易的任务,您应该仔细阅读相关资料。这里有一个教程(链接),还有一本关于Windows驱动程序开发的书籍(链接)
如果您想编写设备驱动程序,则应该非常熟悉C和/或C ++。

1

你不需要为你想要做的事情编写设备驱动程序。设备驱动程序只有数据表中的地址寄存器,可以读取、写入、执行IOMMU等操作或其他一些操作。你需要的是某种方式来破解你想要实现的应用程序编程部分。

因为设备驱动程序代码只是从设备读取数据并将其写回,所以应用程序才是关注点。尽管在某些情况下,设备驱动程序员会向应用程序员提供一种方法(函数),以便他们编写自己的应用程序并调用这些方法。在你的情况下,你只需要了解应用程序代码如何与设备驱动程序通信即可。

如果你想编写设备驱动程序,请查看以下链接: http://www.freesoftwaremagazine.com/articles/drivers_linux?page=0%2C0


0
在这种情况下,您可以通过使用C++和汇编语言编写自己的设备驱动程序。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接