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. BZOJ2878 NOI2012迷失游乐园(树形dp+环套树+概率期望)

    考虑树的部分分怎么做.令f[i]为i向子树内走的期望路径长度,转移比较显然.算答案时先把其父亲的答案弄好就可以统计自己的答案了. 环套树也类似.树里直接dp,对环上点暴力考虑环上的每条路径,算完后再在 ...

  2. P4867 Gty的二逼妹子序列

    题目描述 Autumn和Bakser又在研究Gty的妹子序列了!但他们遇到了一个难题. 对于一段妹子们,他们想让你帮忙求出这之内美丽度∈[a,b]的妹子的美丽度的种类数. 为了方便,我们规定妹子们的美 ...

  3. 【刷题】BZOJ 3668 [Noi2014]起床困难综合症

    Description 21 世纪,许多人得了一种奇怪的病:起床困难综合症,其临床表现为:起床难,起床后精神不佳.作为一名青春阳光好少年,atm 一直坚持与起床困难综合症作斗争.通过研究相关文献,他找 ...

  4. BZOJ 3357: [Usaco2004]等差数列

    3357: [Usaco2004]等差数列 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 338  Solved: 160[Submit][Statu ...

  5. Android Studio 导入系统 jar包

    1.当前需要导入系统jar包的module所对应build.gradle中添加如下依赖: provided files('libs/classes-full-debug.jar') 也可以图形化设置: ...

  6. Button 或 ImageButton 背景设为 透明 或半透明 (转)

    半透明<Button android:background="#e0000000" ... /> 透明<Button android:background=&qu ...

  7. rovio视觉里程计的笔记

    rovio是一个紧耦合,基于图像块的滤波实现的VIO. 他的优点是:计算量小(EKF,稀疏的图像块),但是对应不同的设备需要调参数,参数对精度很重要.没有闭环,没有mapping thread.经常存 ...

  8. shell 循环语句

    1.while 2.for 3.until 4.select while #!/bin/bash # 显示一系列数字 count=1 while [ $count -le 6 ]; do echo $ ...

  9. python安装pip、numpy、scipy、statsmodels、pandas、matplotlib等

    1.安装python 2.安装numpy(开源的数值计算扩展,可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多. 很多库都是以此库为依 ...

  10. LigerUI下拉选择列表LigerComboBox中tree的节点初始化默认选中的问题

    问题描述 用后台的Json传送tree的数据 前端用js方法来控制选中节点 此方法存在bug 实例: bug问题:无论设置的默认选中值是多少个,前台checkbox最多只显示选中一个,但是内容框中显示 ...