当前位置: 代码迷 >> 驱动开发 >> 怎么让USB虚拟出一个串口来,以至于当该设备插入时显示一个USB口和一个虚拟串口
  详细解决方案

怎么让USB虚拟出一个串口来,以至于当该设备插入时显示一个USB口和一个虚拟串口

热度:18   发布时间:2016-04-28 11:05:53.0
如何让USB虚拟出一个串口来,以至于当该设备插入时显示一个USB口和一个虚拟串口
现在在做一网卡项目,实现的功能是当网卡插入Windows   XP系统时,显示一个USB口和一个串口,其中USB口实现上网,串口用于走AT命令等,现在在Windows端的驱动程序都已有现成的,USB也可以上网了

        但是目前系统只可以检测到USB口,无法检测到串口,请问如何将这个USB虚拟出一个串口来呢?

        这个问题困了我好几天了,一直没找到这方面的资料,恳请好心人帮忙…

------解决方案--------------------
如果是纯的软件虚拟,
1、你需要一个Bus Driver,在这个Bug上,产生一个虚拟的硬件PnP消息,系统就会装载相关的串口驱动程序。
2、也可以通过直接在注册表的增加一个串口设备。只是这样不支持PnP。

------解决方案--------------------
需要改你那个“现有的windows端驱动程序”,在监测到usb口的同时就把虚拟的串口也创建出来...
------解决方案--------------------
这是一个有点难度的驱动

建议架构

3个驱动

1个驱动是总线驱动,它挂在Window的USB总线驱动上
1个驱动是在总线驱动下的USB
1个驱动是在总线驱动下的串口

USB驱动和串口驱动向上发包,总线驱动仅仅负责将包转发到Window的USB总线驱动上,而且上网时,又发送AT命令的处理应该比较麻烦。


------解决方案--------------------
不建议在原有的驱动上改,这样应该做不出来的
------解决方案--------------------
探讨
需要改你那个“现有的windows端驱动程序”,在监测到usb口的同时就把虚拟的串口也创建出来...

------解决方案--------------------
这种不用虚拟一个Bus。直接在你的usb设备中的INF中增加
一个HKR,,"UpperFilters",0x00010000,"serenum"
然后你的Device Driver满足serenum的要求,就行了。
------解决方案--------------------
一口两用 同步问题谁解决呢?
我见过直接usb转换虚拟串口的 还真没有见过 一个串口+一个u口的
------解决方案--------------------
虚拟串口是有专门的软件的?跟USB有什么关系?
------解决方案--------------------
兄弟, 我最近在做USB虚拟串口的驱动, 今天刚虚拟了一个com口, 
其实刚接触时,感觉很难, 但现在回头一看,蛮简单的哦!
虚拟com, 要在驱动里对注册表进行操作,添加com, 就OK了。试试哦
------解决方案--------------------
楼上 你好,请指教:也在搞USB转串口,驱动收不到IRP_MJ_CREATE? 不知为啥??
  相关解决方案