我应该如何为 Windows 实现 USB 设备驱动程序?我应该如何考虑不同版本的 Windows,例如: - Windows XP - Windows Vista - Windows 7
是否有可以作为起点的开源解决方案?我是 Windows 驱动程序开发的新手。
我们有一个带有 USB 设备端口的嵌入式设备,我们希望在不牺牲数据吞吐量的情况下,从应用程序级别到设备的通信延迟尽可能低。实际传输的数据是 ADC/DAC 数据。基本上,我们需要尽快将大量数据传输到 Windows 机器。
我们需要有关该设备的更多信息来为您指明正确的方向,但这里有几个步骤可以帮助您入门:
为了回答您关于版本的问题,Driver Kit 提供了可帮助您管理创建不同驱动程序的工具。如果您编写了一个好的驱动程序,它应该可以在所有三个操作系统上运行而没有问题,差异只会在配置区域(而不是二进制文件)
基本上,这取决于您的设备有多复杂。你想写什么类型的驱动程序?文件系统?MP3播放器?相机?调制解调器?
如果您最终不得不编写内核模式驱动程序,请告诉我,我可以为您指出一些好的文章,还有什么不好的。
我还应该补充一点,大约 5,000 美元,您可以购买WinDriver的许可证,该工具可以消除驱动程序开发中的所有困难。您可以使用 C++ 或 C# 用户模式代码与为您的设备自定义生成的驱动程序进行通信。如果您的截止日期很紧,这就是您要走的路。
您可以在此处查看libusb *的 windows 变体*。在官方 libusb 网站和网络上有许多编程语言的包装器。
从这里开始:Windows 驱动程序工具包介绍
如果你对设备端有某种形式的控制,让它实现一个 Windows 已经为其提供驱动程序的接口。例如 USB HID 类(字面意思是 Human Input Device,但 Human 和 Input 都不是强制性的)已经有 Windows 驱动程序,并且在上面有一个合理的 Win32 API。但是,您不会获得接近 480 Mbps 的数据速率。