1. struct usb_device_descriptor {
    __u8 bLength;//设备描述符的字节数大小,为0x12
    __u8 bDescriptorType;//描述符类型编号,为0x01 __le16 bcdUSB;//USB版本号
    __u8 bDeviceClass;//USB分配的设备类代码,0x01~0xfe为标准设备类,0xff为厂商自定义类型 //0x00不是在设备描述符中定义的,如HID
    __u8 bDeviceSubClass;//usb分配的子类代码,同上,值由USB规定和分配的
    __u8 bDeviceProtocol;//USB分配的设备协议代码,同上
    __u8 bMaxPacketSize0;//端点0的最大包的大小
    __le16 idVendor;//厂商编号
    __le16 idProduct;//产品编号
    __le16 bcdDevice;//设备出厂编号
    __u8 iManufacturer;//描述厂商字符串的索引
    __u8 iProduct;//描述产品字符串的索引
    __u8 iSerialNumber;//描述设备序列号字符串的索引
    __u8 bNumConfigurations;//可能的配置数量
    } __attribute__ ((packed)); struct usb_config_descriptor {
    __u8 bLength;//设备描述符的字节数大小,为0x12
    __u8 bDescriptorType;//描述符类型编号,为0x01
    __le16 wTotalLength;//配置所返回的所有数量的大小 __u8 bNumInterfaces;//此配置所支持的接口数量
    __u8 bConfigurationValue;//Set_Configuration命令需要的参数值
    __u8 iConfiguration;//描述该配置的字符串的索引值
    __u8 bmAttributes;//供电模式的选择
    __u8 bMaxPower;//设备从总线提取的最大电流
    } __attribute__ ((packed)); struct usb_interface_descriptor {
    __u8 bLength;//设备描述符的字节数大小,为0x12
    __u8 bDescriptorType;//描述符类型编号,为0x01 __u8 bInterfaceNumber;//接口的编号
    __u8 bAlternateSetting;//备用的接口描述符编号
    __u8 bNumEndpoints;//该接口使用端点数,不包括端点0
    __u8 bInterfaceClass;//接口类型
    __u8 bInterfaceSubClass;//接口子类型
    __u8 bInterfaceProtocol;//接口所遵循的协议
    __u8 iInterface;//描述该接口的字符串索引值
    } __attribute__ ((packed)); struct usb_endpoint_descriptor {
    __u8 bLength;//设备描述符的字节数大小,为0x12
    __u8 bDescriptorType;//描述符类型编号,为0x01 __u8 bEndpointAddress;//端点地址及输入输出属性
    __u8 bmAttributes;//端点的传输类型属性
    __le16 wMaxPacketSize;//端点收、发的最大包的大小
    __u8 bInterval;//主机查询端点的时间间隔 /* NOTE: these two are _only_ in audio endpoints. */
    /* use USB_DT_ENDPOINT*_SIZE in bLength, not sizeof. */
    __u8 bRefresh;
    __u8 bSynchAddress;
    } __attribute__ ((packed)); struct usb_string_descriptor {
    __u8 bLength;//设备描述符的字节数大小,为0x12
    __u8 bDescriptorType;//描述符类型编号,为0x01 __le16 wData[]; /* UTF-16LE encoded */
    } __attribute__ ((packed));

USB descriptor【转】的更多相关文章

  1. USB组合设备 Interface Association Descriptor (IAD)

    Communication Device Class,简称CDCUSB Compound Device,USB复合设备USB Composite Device,USB组合设备 摘要USB复合设备 Co ...

  2. usb驱动开发17之设备生命线

    拜会完了山头的几位大哥,还记得我们从哪里来要到哪里去吗?时刻不能忘记自身的使命啊.我们是从usb_submit_urb()最后的那个遗留问题usb_hcd_submit_urb()函数一路走来,现在就 ...

  3. 『翻译』Access USB Devices on the Web

    https://developers.google.com/web/updates/2016/03/access-usb-devices-on-the-web Access USB Devices o ...

  4. 【转】簡單講講 USB Human Interface Device

    原地址http://213style.blogspot.com/2013/09/usb-human-interface-device.html 恩,發本文的原因是看到了以前畢業的朋友在旁邊的對話框問了 ...

  5. Using a USB host controller security extension for controlling changes in and auditing USB topology

    Protecting computer systems from attacks that attempt to change USB topology and for ensuring that t ...

  6. USB 3.0规范中译本第9章 设备框架

    本文为CoryXie原创译文,转载及有任何问题请联系cory.xie#gmail.com. 设备框架可以被分成三层: 最底层是总线接口层,传送和接收包. 中间层处理在总线接口和设备的各种端点之间路由数 ...

  7. qq2440启动linux后插入u盘出现usb 1-1: device descriptor read/64, error -110,usb 1-1: device not accepting address 8, error -110

    上位机:ubuntu14.04 64bit 下位机:qq2440 交叉编译器:arm-linux-gcc 3.4.1 下位机使用的linux内核版本:kernel2.6.13 1.插入u盘时错误信息如 ...

  8. USB HID Report Descriptor 报告描述符详解

    Report descriptors are composed of pieces of information. Each piece of information is called an Ite ...

  9. 遍历 USB devcie,读取设备描述符 device descriptor【转】

    转自:http://blog.csdn.net/flyyyri/article/details/5480347 理论:    对于USB接口的设备,现在越来越多了.本篇我们就通过获取一个USB扫描仪设 ...

随机推荐

  1. BZOJ5305 HAOI2018苹果树(概率期望+动态规划)

    每种父亲编号小于儿子编号的有标号二叉树的出现概率是相同的,问题相当于求所有n个点的此种树的所有结点两两距离之和. 设f[n]为答案,g[n]为所有此种树所有结点的深度之和,h[n]为此种树的个数. 枚 ...

  2. Python定义函数

    在Python中,定义一个函数要使用def语句,依次写出函数名.括号.括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回. 我们以自定义一个求绝对值的my_abs函数 ...

  3. Vector源码解析

    概要 学完ArrayList和LinkedList之后,我们接着学习Vector.学习方式还是和之前一样,先对Vector有个整体认识,然后再学习它的源码:最后再通过实例来学会使用它.第1部分 Vec ...

  4. java递归方法求数组最大元素

    一直对递归写法不是很熟悉,特写一个增进理解 /** * Created by Administrator on 2017-11-01. */ public class recursion { priv ...

  5. Vue 中使用UEditor富文本编辑器-亲测可用-vue-ueditor-wrap

    其中UEditor中也存在不少错误,再引用过程中. 但是UEditor相对还是比较好用的一个富文本编辑器. vue-ueditor-wrap说明 Vue + UEditor + v-model 双向绑 ...

  6. 使用Java连接HBASE过程中问题总结

    本文是我个人在连接服务器的HBASE过程的一些问题总结. 一.用户和主机名的设置 1.1 报错:Insufficient permissions(user=Administartor) 原因:本地ho ...

  7. 【BZOJ4903/UOJ300】【CTSC2017】吉夫特

    Description 传送门 ​ 简述题意:给一个序列,询问有多少子序列满足其中不会出现\(a\choose b\)是偶数的情况,其中\(a\)在\(b\)前面. Solution 首先探究组合数的 ...

  8. 针对Weblogic测试的一些小总结(转)

    1. 管理员登录页面弱密码 Weblogic的端口一般为7001,弱密码一般为weblogic/Oracle@123 or weblogic,或者根据具体情况进行猜测,公司名,人名等等,再有就可以用b ...

  9. debian修改默认编辑器

    刚才在一台机器上打开 crontab -e,跳出来的编辑器是nano,太难使... 在debian下是使用 update-alternatives 命令修改默认编辑器. 先查看一下使用帮助 # upd ...

  10. Service Intent must be explicit的解决方法

    今天遇到如标题问题,查阅资料:http://blog.android-develop.com/2014/10/android-l-api-21-javalangillegalargumen.html ...