usb禁止重定向_USB虚拟化与重定向(一)
Ⅰ. Foundation
在介绍USB虚拟化之前,我们先了解下关于USB的基础知识。
USB,即通用串行总线。作为一种计算机外设,是一种外部总线的标准,用于规范主机与设备之间的通信与连接。USB系统架构分为三个部分,USB主机控制器/根集线器(又名,USB总线接口),USB集线器,USB设备。
USB主机控制器接在PCI/PCIe 总线
Ⅱ. USB的枚举和传输
主机通过USB设备枚举的过程来判断和管理设备的连接和断开。1、USB设备连接至集线器的USB端口后,即就是我们笔记本上面的USB接口,集线器会使用其中断IN管道向主机报告设备的插入事件。
2、主机知道设备接入集线器后,向集线器发出查询请求以了解更多信息。当确认有设备接入总线,主机发出查询请求复位设备,在这期间集线器会确定设备的传输速率并向主机报告。复位结束后USB设备进入缺省状态,并可使用缺省设各地址对管道0的控制事务做出响应。
3、主机向设备发送USB协议规定的请求描述符命令,读取该描述符的前8个字节,以取得却缺省控制管道所支持的最大数据包长度。
4、主机发送配置地址命令分配一个唯一的地址给设备。设备读取这个请求,返回一个确认,并保存新的地址。从此开始所有通信都使用这个新地址。
5、主机向新地址设备重新发送请求描述符命令,读取其设备描述符,以了解该设备的总体信息。
6、主机向设备循环发送请求配置命令,以读取全部配置信息。获得字符串描述比如厂商、产品描述、型号等。
7、主机根据Device 和应答信息,为设备选择一个合适的USB设备驱动程序。
8、加载USB设备驱动后,主机将发出SetConfiguration(x)请求为该设备选择配置。如果配置成功,USB设备进入设备配置状态,可以和主机进行数据通信。
当USB设备连接到USB总线后,设备便可以和主机进行通信。通信的过程中,自上而下要经过四个部分:主机应用程序
USB总线驱动程序(Bus Driver)
USB主控制器驱动程序(Host Driver)
USB功能设备(Device Driver)
主机应用程序--->发送数据传输请求(IRP)--->USB总线驱动程序--->响应IRP,数据转化具有USB协议格式的事务处理--->USB主控制器驱动程序--->将这些事务处理建立成事务列表,同时要求不能超过USB带宽--->USB主控制器读取到事务列表并将事务转化为信息包,发送到USB总线接口--->根集线器--->USB设备收到这些信息后,由USB的SIE引擎自动解码信息包--->将其解包后放入指定端点的接收缓冲区内,由芯片固件对其进行处理。
参考^PCI总线有独立的地址空间,它与处理器地址空间是隔离的
usb禁止重定向_USB虚拟化与重定向(一)相关推荐
- Windows重定向技术【文件重定向与注册表重定向】
目录 重定向技术 重定向技术适用版本: 重定向技术产生原因:为了确保32位程序能够顺利运行 一:重定向-文件重定向 文件重定向原因:为了确保32位程序能够顺利运行 文件重定向产生场景: 文件重定向具体 ...
- php 302临时重定向,php实现301永久重定向和302临时重定向
对于许多站点而言,以域名365mini.com为例:用户在浏览器中输入网址http://www.365mini.com/或者http://www.365mini.com/index.php,实际上访问 ...
- linux输出重定向跨服务器,【一看就懂,一听就会】Linux重定向详解——输出重定向...
一.啥是重定向?? Linux重定向定向分为两种,一种输入重定向,一种是输出重定向: 从字面上理解,输入输出重定向(重新定义方向) 就是「改变输入与输出的方向」的意思. 总结: 输入方向就是我们人类从 ...
- 虚拟服务器设置重定向,什么是域名重定向,怎样在虚拟主机设置域名重定向
域名重定向的基础知识 域名重定向有多种用途.如果您已经将您的网站移动到一个新的域,或者已经更改了您的某些页面的URL结构,那么现在是利用域名重定向的时候了. 掌握如何将域名重定向到另一个域在您的网站管 ...
- python 重定向输入_python怎么重定向输入
匿名用户 1级 2017-05-31 回答 控制台重定向 最简单常用的输出重定向方式是利用控制台命令.这种重定向由控制台完成,而与Python本身无关. Windows命令提示符(cmd.exe)和L ...
- php重定向和伪静态,PHP重定向与伪静态的区别详解
伪静态是SEO重要的方法,通过重定向来实现,并且可以通过重定向来隐藏网站的技术,过滤异常访问.本课分为两部分,前半部分详细介绍Apache重定向的基础知识,后半部分通过多个实际案例再次加深对重定向的理 ...
- php重定向什么意思,PHP重定向与伪静态区别
什么是伪静态 伪静态是相对真静态来讲 伪静态只是把URL改成静态形式,实际上还是动态网页 伪静态有着真静态一样的SEO 什么是重定向(很常用重点学习) 将网络请求重新定一个方向,转到别的位置 分为内部 ...
- php重定向返回200,PHP重定向回上一页
我为login.php页面所做的是,如果用户已登录,他将被重定向到first.php页面. session_start(); if(isset($_SESSION['usr']) && ...
- php如何实现302重定向,php 301 302重定向实现代码
很多网站的站长们都喜欢把前台的顶级域名301重定向到带有www的二级域名上,或者带www的二级域名重定向到顶级域名上,以集中权重.而在网站的后端设计中,一些页面的提交跳转则需要使用到302重定项.关于 ...
- 【已阅】printf,echo,cat指令与输出重定向>,输入重定向<与追加重定向>>等
printf指令的功能(+输出/追加重定向) 语法:printf "格式化数据" (>/>>重定向) 功能:格式化输出(默认往显示器文件且不带换行符) 实例演示 ...
最新文章
- leetcode:2680 Remove Duplicates from Sorted Array 删除数组中的重复元素
- 三次样条插值三弯矩matlab_三次样条(cubic spline)插值
- 1.2 离散时间信号-采样
- 设计新Xlator扩展GlusterFS[转]
- 自制爬虫例--抓取网站图像与简介
- ios uilabel 根据文字 计算宽度 高度
- 复杂电路简化经典例题_一天搞定考试系列之电路原理(3)
- 基于JAVA+SpringMVC+MYSQL的ktv预订管理系统
- 70个经典的 Shell 脚本面试问题
- 【Twitter】时序图神经网络
- 人民币发行量比美元还大吗?
- 【计算机网络笔记】数据链路层(封装成帧,差错检测,可靠传输)
- 验证码~正则表达式【整理汇总】
- linux下od命令的使用教程,linux od命令详解
- win10系统启动wifi服务器,windows10系统下开启wifi共享的两种方法
- 微信小程序之将base64图片转为本地图片
- cocos如何在游戏中动态设置横竖屏
- C++:实现量化Integration积分测试实例
- 鳄鱼mt4复盘助手_教你一个正确的MT4复盘小技巧
- android webview第三方框架,Android 中使用第三方 WebView,腾讯X5浏览器
热门文章
- 华为android解锁,华为bootloader怎么解锁 华为手机bootloader解锁教程
- [深度学习] fast-reid入门教程
- #金项奖获奖项目专题# | 京东闪付---快人一步
- mysql8忘记密码后重置密码
- Fastjson 远程命令执⾏漏洞
- 电脑小技巧系列——快捷打开程序应用
- 线性调频信号与脉冲压缩
- 常用 ASCII 码整理
- 输入一行数字、数字之间用空格隔开python_Python 实现一行输入多个数字(用空格隔开)...
- pyhive python连接hive