`
tibaloga
  • 浏览: 871809 次
文章分类
社区版块
存档分类
最新评论

Windows XP下USB转串口驱动编码实现分析

 
阅读更多

USB转COM驱动的编写实现有很多中方法,最近在网络上看到一个最常用的方式,即是虚拟一个COM口,在COM初试的时候进行打开一个USB设备.

当USB串COM口驱动处理Write和Read 等IRQ的时候,其实是去读写USB 设备驱动,读写方式是直接采用ZwReadFile和ZwWriteFile函数.但是真正的实现也不是这么简单,真实的实现是开辟一个线程和一段较大的缓冲区,线程用于适时读取USB设备的数据并保存在缓冲区当中.当上层应用程序向这个虚拟的COM口发送READ IRP(IRP_MJ_READ)的时候,则直接从这段缓冲区中读取数据返回即可.当然还不要忘记处理超时的问题处理.

因此USB转COM驱动在INF文件加载的时候实际上需要加载两个驱动程序,一个是USB驱动,对应与USB设备的VID和PID,另外一个就是COM虚拟驱动程序,需要对应设置COM口号.如下将对关键代码列出;

  • 创建COM口设备对象

  • 获取USB设备名称用于打开设备

  • 打开USB设备端口

其他的驱动程序处理都是常规处理,在这里就不多做介绍!

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics