USB设备驱动开发之远程访问USB设备( 三 虚拟USB控制器和根集线器)

本文详细介绍了如何在Windows系统中开发虚拟USB设备驱动,以实现远程访问USB设备,特别是为了让VMware虚拟机识别并接入这些设备。通过创建虚拟USB控制器和根集线器,模拟USB设备栈的层次结构,最终成功欺骗底层软件如USBLyzer和VMware,使虚拟设备被正确识别和使用。
摘要由CSDN通过智能技术生成

By Fanxiushu 2016-05-25 转载或引用请注明原始作者

接上文,
通过应用层程序发送 CreatePDO IOCTL命令到总线驱动,让总线驱动直接创建一个虚拟USB设备的PDO,所有发送到
这个PDO的URB请求最终被转发到应用层程序,由应用层程序通过网络转发到真正的USB设备端进行数据处理,
并且最终把处理的数据结果回传给总线驱动。
采用这样的工作模式的虚拟USB设备,因为缺少USB控制器和根集线器的支持,某些软件尤其是工作在底层的软件,
比如USBLyzer这样的USB抓包工具,再比如vmware虚拟机程序等是无法识别出我们的虚拟USB设备的。
而我实现远程访问USB设备的初衷就是为了能让vmware虚拟机识别出虚拟USB设备,
并且再次把虚拟USB设备成功转向到vmware的虚拟机系统里边去。
因此目标尚未没达到,还需继续努力,得让USB虚拟系统是个完善的USB设备栈。

于是通过Google全世界范围内搜索关于windows平台下USB设备栈的相关资料
(感谢Google强大的搜寻能力,尤其是对这些比较难查询的技术资料,国内的搜索引擎就显得捉襟见肘了)
通过查询资料,查看源代码,尤其是ReactOS的关于USB设备栈实现的源代码(也得感谢ReactOS提供的接近windows内核的源代码),

评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值