1、 CLDMIND 云思创想桌面云USB重定向特性 设计文档 CLDMIND Tech (Beijing) LTD. 2013/1/26 Revision Summary Date Revision History Comments 01/26/2013 1.0 Initial Available 12/22/2014 2.0 More Support Contents Contents 2 1 引言 3 1.1 编写目的 3 1.2 背景 3 1.3 定义 3 1.4 参考资料 3 2 特性总体设计 3 2.1
2、 需求规定 3 2.1.1 功能需求 3 2.1.2 性能需求 4 2.2 基本设计概念和处理流程 4 2.3 软件结构图 4 2.4 模块变更概述 5 3 客户端设计(新增模块) 5 3.1 模块描述 5 3.2 功能 5 3.3 性能 6 3.4 设计方法(算法) 6 3.4.1 USB设备抽象层 6 3.4.2 USB设备屏蔽层 7 3.5 流程逻辑 7 3.6 关键数据结构 7 3.7 关键函数 7 3.8 存储分配 7 4 服务端设计(新增模块) 7 4.1 模块描述 7 4.2 功能 7 4.3 性能 7 4.4 设计方法(算法) 8 4
3、5 流程逻辑 8 4.6 关键数据结构 8 4.7 关键函数 8 4.8 存储分配 8 1 引言 1.1 编写目的 USB重定向技术为云思创想桌面云支持USB外设,用户在桌面云环境能正常使用USB盘,手机,打印机等各类USB设备 1.2 背景 1.3 定义 [列出本文件中用到的专门术语的定义和外文首字母组词的原词组。] CLDMIND 云思创想科技(北京)有限公司的注册商标 1.4 参考资料 2 特性总体设计 2.1 需求规定 2.1.1 功能需求 1. 支持U盘,移动硬盘等大存储设备 2. 支持USB打印机 3. 支持安卓手机,
4、主要支持以下厂商 序列号 安卓手机厂商 1 LG 2 华为 3 联想 4 HTC 5 小米 6 魅族 7 中兴 8 三星 9 谷歌 4. 支持苹果手机 序列号 苹果手机型号 1 IPhone4 2 Iphone4s 3 Iphone5 4 Iphone5s 5 IPhone6 6 IPhone6s 5. 支持USB摄像头 6. 支持扫描仪 7. 支持热插拔 8. 支持扫描枪 2.1.2 性能需求 1. USB2.0的U盘,拷贝速率不低于2M 2. USB3.0的移动硬盘, 拷贝速率不低于30M
5、 2.2 基本设计概念和处理流程 通用串行总线(Universal Serial Bus,简称USB)是Intel、IBM、Microsoft等七家公司于1994年推出的主机与设备间的通信协议,被广泛地应用于计算机主机与外围设备上。USB协议支持热插拔,设备与主机间的交互简单易用。目前,已有数百种设备使用USB接口与主机通信,例如:移动硬盘、打印机、U盾、条形码扫描仪、触摸屏、手机等。USB协议的版本主要有1.1(1998),2.0(2000)和3.0(2008)。 随着虚拟化技术的发展,越来越多的企业使用云桌面技术搭建信息系统。在云桌面的场景下,主机运行在一个虚拟的硬件环境下,用户通过
6、轻量级的客户端与主机交互。因此,用户不能像在PC机上一样操作USB设备。这也成为限制云桌面技术推广的一个重要因素。云思创想的USB重定向程序很好地解决了这个问题。 2.3 软件结构图 云思创想USB重定向使用Windows的虚拟总线枚举技术,将客户端接入的USB重定向到远程主机中。其体系结构如图所示 目前,该程序与云思创想远程交互协议客户端POND集成在一起。当客户端POND向远程主机发起连接请求后,调用重定向程序的接口,启动USB重定向的功能。USB重定向启动后,首先初始化USB设备重定向权限控制表,并扫描本地的USB设备,如果设备允许被重定向到远程主机,则读取USB设备的信息,向
7、远程主机(windows xp或win 7)中的cldusbd程序发起重定向USB设备的请求。cldusbd接收到重定向请求后,将USB设备的信息(VendorID、ProductIDl)发送给cld虚拟总线枚举器。cld虚拟总线枚举器根据USB设备的信息创建相应的USB设备,并通知Windows的设备管理器有新的设备接入。设备管理器首先会根据USB的设备VendorID和ProductID查找驱动,如U盘(class:0x8,subclass:0x6,protocol:0x50)加载大容量存储的驱动(usbstorage)。如果USB设备是composite设备,则加载usbccgp驱动,u
8、sbccgp驱动枚举composite设备的所有的接口设备。至此,远程主机上的用户或程序就可以操作在客户端接入的USB设备了。用户或程序对USB设备的请求都经过cld虚拟总线枚举器和cldusbd通过网络传递到客户端的USB设备上。 2.4 模块变更概述 3 客户端设计(新增模块) 3.1 模块描述 USB重定向客户端,是云思创想桌面云之USB重定向的组成部分。 3.2 功能 1. 识别各类USB设备 2. 向服务端发起连接 3.3 性能 3.4 设计方法(算法) USB设备抽象层,屏蔽USB设备的差异性。USB设备屏蔽层决定一个USB设
9、备是否可以被重定向。重定向主线程与远程主机交互,接收和转发URB请求。热插拔事件处理发现USB设备,并创建重定向主线程。 3.4.1 USB设备抽象层 云思创想的USB重定向程序在客户端抽象了一个虚拟的USB设备来解决不同的USB设备在实现上的差异性问题 typedef struct{ unsigned int ven_prod ; //key,vendorID << 16 | productID int (* control)(void* private, char * setup); int (* post_callback)(void * private, int status); } cld_usb_op_t; 当一个USB设备经过检查,被确认可以被重定向远程主机后,则向远程主机发起连接 3.4.2 USB设备屏蔽层 3.5 流程逻辑 3.6 关键数据结构 3.7 关键函数 3.8 存储分配 4 服务端设计(新增模块) 4.1 模块描述 USB重定向服务端,是云思创想桌面云之USB重定向的组成部分。 4.2 功能 1. 接收客户端请求 2. 驱动 4.3 性能 4.4 设计方法(算法) 4.5 流程逻辑 4.6 关键数据结构 4.7 关键函数 4.8 存储分配
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818