代码如下: 打开USB Hub设备之后,返回句柄hHubDevice,然后使用EnumerateHubPorts来枚举Hub的端 口.疑问在代码的中文注释中. bool CUsbEnumHub::EnumerateHubPorts(HANDLE hHubDevice, ULONG NumPorts, UsbItem* pRootItem) { ULONG index; BOOL bSuccess; PUSB_NODE_CONNECTION_INFORMATION_EX connectionInf…
一个crontab脚本,下载一个文件并把内容入mysql数据库.具体流程如下: 1, wget一个文件. 2,处理文件生成一个中间文件. 3,将中间文件load入库. 05 10 * * * /home/work/local/php5.4/bin/php /home/work/www/new_products1/web/index_cli.php actionads/index bug现象: 在线上,5次运行中,有2次会出错,就是入库的数据会缺失30%以上. 在线上手动运行脚本,没有一次出错.但…
(一)DeviceIoControl的PInvoke /* ---------------------------------------------------------- 文件名称:DeviceIoControl.cs 作者:秦建辉 MSN:splashcn@msn.com QQ:36748897 博客:http://blog.csdn.net/jhqin 开发环境: Visual Studio V2010 .NET Framework 4 Client Profile 版本历史: V1.…
前言: USB设备使用方便,但也可能被用来携带恶意软件.病毒,感染计算机系统.通过禁用自动播放功能.杀毒软件查杀.不定期的对设备进行格式化等操作可以确保它是干净的.但它存在的安全问题要比我们想象的更深,问题不仅在于它携带了什么,还在于通过它的工作方式就能产生安全隐患. USB隐藏的危险: 安全研究员Karsten Nohl 和Jakob Lell 发现了从根本上颠覆USB安全性的方法.他们创建的恶意软件,暂且称为BadUSB,可以被安装到USB设备中完全控制PC,无形中修改内存中的文件,甚至重定…
在终端用户看来,USB设备为主机提供了多种多样的附加功能,如文件传输,声音播放等,但对USB主机来说,它与所有USB设备的接口都是一致的.一个USB设备由3个功能模块组成:USB总线接口.USB逻辑设备和功能单元.这里的USB总线接口指的是USB设备中的串行接口引擎(SIE):USB逻辑设备被USB系统软件看作是一个端点的集合:功能单元被客户软件看作是一个接口的集合.SIE.端点和接口都是USB设备的组成单元. 为了更好地描述USB设备的特征,USB提出了设备架构的概念.从这个角度来看,可以认为…
USB设备驱动 ·  )USB Hub:每个USBHost控制器都会自带一个USB Hub,被称为根(Root)Hub.这个根Hub可以接子(Sub)Hub,每个Hub上挂载USB设备.一般PC有8个USB口,通过外接USB Hub,可以插更多的USB设备.当USB设备插入到USBHub或从上面拔出时,都会发出电信号通知系统.这样可以枚举USB设备,例如当被插入的时候,系统就会创建一个USB物理总线,并询问用户安装设备驱动.如图17-4所示为一个典型的USB Hub的示意图. 是控制管道,管道1…
一.概述 公司最近要我实现USB设备插入Ubuntu后,自动共享到网络上,能像Windows共享一样(如\\192.168.1.10)访问里面的内容,不需要写入权限.当时听完这需求,我这新人表示惊呆了,立刻上网搜相关文档,并跑去问主管,这功能有人实现了不?主管很肯定地说,必须的.网上搜到的技术文档只有插入USB设备自动挂载,自动共享没搜到,这下只好靠自己了. 经过一番折腾总算在Ubuntu14.04桌面版实现了该功能,但还不完美,例如:默认只共享出来5个USB设备,USB1~5,拔出后设备还存在…
USB设备,分为3层:1.底层为传送和接受数据的总线接口:2.中间层处理总线和不同端点的数据传输:3.最高层由串行总线设备提供.主要研究中间层. USB设备状态,主要研究外部可见状态. 1,连接态-->USB设备可从Host上连接或者断开. 2,加电态-->设备对电源的支持能力是通过配置描述表来反映的. 3,缺省态-->加电后尚未复位之前不应对总线相应,在接收到复位信号后,设备在缺省地址处可寻址. 4,编址态-->设备由主机分配一个唯一的地址后,就保持这个地址. 5,配置态--&g…
USB主机在检测到USB设备插入后,就要对设备进行枚举了.为什么要枚举?枚举就是从设备读取各种描述符信息,这样主机就可以根据这些信息来加载合适的驱动程序,从而知道设备是什么样的设备,如何进行通信等. 枚举的过程: 1.  USB主机检测到USB设备插入之后,就会先对设备复位.USB设备在总线复位后其地址为0,这样主机就可以通过地址0和那些刚刚插入的设备通信.USB主机往地址为0的设备的端点0发送获取设备描述符的标准请求(这是一个控制传输的建立过程).设备收到该请求后,会按照主机请求的参数,在数据…
USB主机在检测到USB设备插入后,就要对设备进行枚举了.为什么要枚举呢?枚举就是从设备读取一些信息,知道设备是什么样的设备,如何进行通信,这样主机就可以根据这些信息来加载合适的驱动程序.调试USB设备,很重要的一点就是USB的枚举过程,只要枚举成功了,那么就已经成功大半了. 在说枚举之前,先大概说一下USB的一种传输模式——控制传输.这种传输在USB中是非常重要的,它要保证数据的正确性,在设备的枚举过程中都是使用控制传输.控制传输分为三个过程:①建立过程.②可选的数据过程.③状态过程.建立(S…
上篇 <Windows下USB磁盘开发系列一:枚举系统中U盘的盘符>介绍了很简单的获取系统U盘盘符的办法,现在介绍下如何枚举系统中所有USB设备(不光是U盘). 主要调用的API如下: 1,调用SetupDiGetClassDevs()获取指定设备类型的句柄: 2,调用SetupDiEnumDeviceInfo()枚举设备信息: 3,调用SetupDiGetDeviceRegistryProperty()获取设备信息. 具体实现函数如下: int enum_usb_device_info()…
USB设备从接入HUB到正常工作之前.都属于设备枚举阶段.所谓设备枚举.就是让host控制器认识USB设备,并为其准备资源.建立好主机与设备间的数据传递机制. 该阶段的工作,是USB通信协议规定的,所以属于ISO标准流程.设备枚举阶段也相应了USB设备的五种状态. 设备枚举阶段分为例如以下8个步骤: 获取设备描写叙述符 复位 设置地址 再次获取设备描写叙述符 获取配置描写叙述符 获取接口.端点描写叙述符 获取字符串描写叙述符 选择设置配置 当中,步骤1与4都是获取设备描写叙述符,两者有什么差别?…
一.背景: 最近在做的一个项目需要使用USB传递数据,对USB理解不是很深,USB的系统驱动编写则更是天方 夜谭,因此将设备配置成HID类设备成为了首选.其最大的好处在于,LINUX/Windows系统中均自带HID 设备驱动,免除了USB系统驱动的困扰,同时HID配置为高速设备与全速设备时,其每笔事务传输的最大 字节大小分别为64bytes.1024bytes,亦符合当前开发需求. 二.正文: 安装及使用方法在"HIDAPI"文件夹中的"Readme"有了详细说明…
usb设备驱动 本章主要内容包含以下:USB总线介绍,USB协议分析,USB系统架构 一.USB总线介绍 1.1USB发展史 USB(Universal Serial Bus)通用串行总线,是一种外部总线标准用于规范电脑与外部设备的连接和通讯.USB是在1994年底由英特尔.康柏.IBM.Microsoft等多家公司联合提出的,自1996年推出后已成功替代串口和并口,成为当今个人电脑和大量智能设备的必配接口之一. USB 1.0出现在1996年的,速度只有1.5Mb/s1998年升级为USB 1…
本文转载自:http://www.cnblogs.com/xidongs/archive/2011/09/26/2191616.html 一.应用场合 USB HID类是比较大的一个类,HID类设备属于人机交互操作的设备.用于控制计算机操作的一些方面,如USB鼠标,USB键盘,USB游戏操纵杆,USB触摸板,USB轨迹球.电话拨号设备.VCR遥控等等设备.另外,使用HID设备的一个好处就是,操作系统自带了HID类的驱动程序,而用户无需去开发很麻烦的驱动程序,只要直接使用API调用即可完成通信.所…
通过前面的学习,大家应该对USB固件程序结构有了比较深的认识,现在再来详细说说固件里决定设备识别成厂商自定义USB设备的地方有哪些,或者说厂商自定义USB设备的固件特性有哪些. 之前不止一次说过学习USB固件编程的要点是要学会各种描述符及主机命令以及设备的枚举过程,理解设备枚举过程是主线,在这一过程中需要掌握主机各种命令及USB相关描述符(本站<USB命令请求及描述符详解(速查手册)>和<用USB Monitor监视USB枚举(配置.识别)过程(USB枚举过程分析)>对此进行了总结…
源:基于libUSB的USB设备固件更新程序(下载数据) 本文紧接上一篇日志:基于libUSB-Win32的USB设备固件更新程序(前言),相关背景以及起因等,此处不再赘述,如感兴趣请移步. libUSB-Win32给出的example里面,有一个bulk.c文件,分析其关键代码,结合libusb官方文档,摘出其关键代码如下: int main(void) { usb_dev_handle *dev = NULL; /* the device handle */ usb_init(); /* i…
之前做过STM32的usb HID复合设备,闲来看看linux下USB设备驱动是怎么一回事, 参考资料基于韦东山JZ2440开发板,以下,有错误欢迎指出. 1.准备知识 1.1USB相关概念: USB枚举过程:https://blog.csdn.net/go_str/article/details/80802452 USB其它概念: Linux platform平台总线.平台设备.平台驱动 (1)usb是主从结构,usb的传输都是主机发起: (2)usb右四种传输类型:控制.批量.中断.实时传输…
USB驱动分为两块,一块是USB的bus驱动,这个东西,Linux内核已经做好了,我们可以不管,我们只需要了解它的功能.形象的说,USB的bus驱动相当于铺出一条路来,让所有的信息都可以通过这条USB通道到达该到的地方,这部分工作由usb_core(drivers/usb/usb.c)来完成.当USB设备接到USB控制器接口时,usb_core就检测该设备的一些信息,如生产厂商的ID(VID)和产品的ID(PID),或者是设备所属的class.subclass跟protocol,以便确定应该调用…
本文简单介绍一下USB设备的驱动程序是如何匹配设备以及被加载的: 上文(UDK中USB总线驱动的实现框架)提到USB总线枚举设备的最后一步是调用gBS->ConnectController()去查找device的驱动并加载. 1.查找驱动: 首先UEFI中所有符合UEFI Driver Model的驱动在模块的入口点,都会去安装EFI_DRIVER_BINDING_PROTOCOL:gBS->ConnectController()会去遍历系统中所有的EFI_DRIVER_BINDING_PRO…
add by zhj:上午鼠标还用的好好的,下午就不能用了,插上之后提示“跟这台计算机连接的一个usb设备运行不正常”,尼玛,什么情况?我今天没安装软件啊,换了个USB接口也不行,在另一台电脑上试还是不行,在我想把这个鼠标扔了的时候,发现了下面的帖子,用第一种方法试了试.把插头拔下来,用钥匙连接了一下正负线,然后把鼠标拔出重新插上,OK,果然牛逼,好了,不用重启电脑.但后来又多次出现这种情况,连接正负线也不管用了,只好买了一个新鼠标. 原文:http://itbbs.pconline.com.c…
说明:本分析基于mstar801平台Linux2.6.35.11内核,其他内核版本仅供参考. 一.程序在内核中的位置 1.usb host做为pci总线下的一个设备存在(嵌入式系统中有可能也会直接挂在CPU上):这部分驱动由厂家实现,本分析以mstar为例. 2.USB总线驱动 kernel/drivers/usb/core/driver.c EXPORT_SYMBOL_GPL(usb_register_driver); EXPORT_SYMBOL_GPL(usb_deregister); EX…
当需要使用usb bulk传输,想让设备像串口通讯那样和PC主机通信, 通常需要自己做一个PC端的驱动,比较麻烦. 为避免在pc上编写usb设备驱动的麻烦,可以将设备做成mass storage 类的设备,使用通用的驱动. 在通讯之前设备端需要先做两件事: 1,实现mass storage 类的描述符和类请求. 2,实现必要的SCSI命令,让PC认为该设备已正常运作. 我利用修改linux中的gadget zero设备做了一个简单的设备. 如果是在裸机程序下面做,应该也差不多,直接拿芯片厂商BS…
您可能已经注意到,如果您使用USB设备并将其插入计算机,Windows会识别并配置它.然后,如果你拔掉它并将其重新插入另一个USB端口,Windows就会出现一连串的健忘症,并认为这是一个完全不同的设备,而不是使用上次插入时应用的设置,或者你的电脑无法识别它,这是为什么? USB设备的人解释说,当设备缺少USB序列号时会发生这种情况. USB设备上的序列号是可选的.如果设备有一个,则无论您将哪个USB端口插入,Windows都会识别该设备.但如果它没有序列号,则Windows会将不同USB端口上…
集线器与控制器(USB地址7bit) 设备,配置,端点,接口 USB1.0(低速1.2),1.1(全速450m),2.0(高速,电流传输)区别 引脚4根(V,D-,D+,gnd),miniUSB增加 USB检测机制,D-.D+有没有高电平 USB设备有多个端点,设备地址和端点唯一确认一个通讯点 一个设备可以有多个配置(同时只有一个生效),一个配置可以有多个接口,接口下有多个端点.根据不同的功能选择不同的配置. USB设备枚举,获知设备类型,如何通讯. 传输编码(NRZI),传输以包为单位,每个包…
问题:域环境下如何禁用USB口设备? 第一种:用传统的办法,在Bios中禁用USB. 第二种: 微软技术支持回答:根据您的需求, Windows识别USB设备主要通过两个文件,一个是Usbstor.pnf.另外一个是Usbstor.inf,当在电脑第一次使用USB设备之前禁用这两个文件即可达到我们的目标.1.打开Active Directory用户和计算机:2.选择需要禁用USB设备的OU,并点击鼠标右键进行组策略:3.创建一个针对USB的GPO,并点击编辑,打开组策略编辑器:4.进入组策略编辑…
由于某些软件只有windows版本,于是只好安装个虚拟机win7 /**************************安装*************************************/ Virtualbox 直接在软件中心就有,安装一下就行 然后随便搜索了个win7的镜像,找到很多都是Ghost镜像,那就下个Ghost吧 然后,新建了个win7虚拟机,把下载的iso加载进去,开机后,发现出问题了,无法直接ghost安装,只能进入PE,失败了好几次 后来尝试出解决方法如下 1,新建…
USB在接入系统的时候,以0的设备ID和主机通信,然后由主机为其分配新的ID. 在主机端,D+和D-都是下拉接地的.而设备端的D-接上拉时,表明此设备为高速设备:12M/s. D+接上拉时则是全速设备:480M/S. PC的USB口中的D+D-有15K的下拉电阻,未接USB设备时,皆为低电平. 而设备中的D+D-则是1.5K的上拉电阻.一旦接入PC中,电脑就会知道有设备接入. USB是主从结构.所有的传输都是由主机发起的,即USB设备没有主动通知USB主机的能力. USB的传输类型: 控制传输.…
根据USB规范的规定,所有的USB设备都有供应商ID(VID)和产品识别码(PID),主机通过不同的VID和PID来区别不同的设备,VID 和PID都是两个字节长,其中,供应商ID(VID)由供应商向USB执行论坛申请,每个供应商的 VID是唯一的,PID由供应商自行决定,理论上来说,不同的产品.相同产品的不同型号.相同型号的不同设计的产品最好采用不同的PID,以便区别相同厂 家的不同设备. VID和PID通常情况下有两种存储方式,第一种是主控生产商的VID和PID,存储在主控的bootcode…
转载自:http://www.cnblogs.com/ericsun/archive/2013/06/10/3130679.html 具体步骤在上面的链接中 今天在ubuntu下安装了Virtualbox.但是每次设置的时候,提示 virtualbox当前不允许访问usb设备等等等.. 转载的仁兄的其中的一个步骤有点问题 将其改为:sudo usermod -a -G vboxusers sharl....…