如何编程USB RNDIS?

我正在使用一个运行
Linux的控制器板.我想通过USB将我的设备连接到主机(Windows操作系统).

我决定使用RNDIS类进行主机和设备之间的通信.我在设备端(linux)准备好了驱动程序.当我将设备连接到Windows主机时,它会将硬件检测为RNDIS / CDC未知设备.现在,对于Windows的驱动程序开发,我使用了“Jungo windriver 10.10”.它生成了INF文件,并在系统上成功检测到我的设备.

现在我如何开始主机和设备之间的通信?我想提一下,我是编程新手,没有Windows端编程经验.

可以肯定的是,我必须在两侧开发应用程序驱动程序(Device-Linux和host-windows)

有人可以指导我如何继续这个?

提前致谢….

最佳答案 首先,RNDIS作为标准交付可用于Windows xp以上,而不是Jungo的主机堆栈,而是MS的.

其次,你知道你在设备端准备了什么驱动程序吗?是Jungo RNDIS目标边堆?

要在RNDIS设备的主机和目标之间进行通信,请尝试以下两个MS链接,帮助您了解控制和数据通道,以及EP设置:

http://207.46.16.248/en-us/library/ee483123(WinEmbedded.60).aspx
http://download.microsoft.com/download/B/0/B/B0B199DB-41E6-400F-90CD-C350D0C14A53/[MS-RNDIS].pdf

RNDIS使用两个通道,一个控制通道和一个数据通道.初始通信从控制通道开始,然后数据开始在数据通道上流动,数据通道使用两个BULK端点IN和OUT.

但是,您应该注意RNDIS规范要求之后的事实
提交RNDIS控制消息到控制通道端点,主机甚至会在中断端点上监听.

点赞