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. BZOJ3252 攻略(贪心+dfs序+线段树)

    考虑贪心,每次选价值最大的链.选完之后对于链上点dfs序暴力修改子树.因为每个点最多被选一次,复杂度非常正确. #include<iostream> #include<cstdio& ...

  2. P3701 「伪模板」主席树

    题目背景 byx和手气君都非常都非常喜欢种树.有一天,他们得到了两颗奇怪的树种,于是各自取了一颗回家种树,并约定几年后比一比谁种出来的树更加牛x. 题目描述 很快,这棵树就开花结果了.byx和手气君惊 ...

  3. Python画统计图

    https://blog.csdn.net/jenyzhang/article/details/52046372

  4. 正确理解 LEAL (Load Effective Address) 指令

    LEAL: leal S, D    ->    D ← &S 在 CSAPP (Computer Systems: A Programmer’s Perspective) 中,对 LE ...

  5. android app 的插件化、组件化、模块化开发

    Android 插件化 ——指将一个程序划分为不同的部分,比如一般 App的皮肤样式就可以看成一个插件 Android 组件化 ——这个概念实际跟上面相差不那么明显,组件和插件较大的区别就是:组件是指 ...

  6. bzoj 3928: [Cerc2014] Outer space invaders

    $f[i][j]$表示消灭起始时间在$(i,j)$内的外星人所花费的最小代价. 考虑在这个区间内距离最远的外星人h,在他的区间中一定要选一个点要开一炮,而且这一炮可以顺便把其他跨过这个点的敌人消灭,剩 ...

  7. 字符串化#、拼接字符##和可变参数宏(...和_ _VA_ARGS_ _)

    宏定义的使用与注意事项 ##是一个连接符号,用于把参数连在一起 #是“字符串化”的意思.出现在宏定义中的#是把跟在后面的参数转换成一个字符串#define paster( n ) printf( &q ...

  8. 一、初识java

    理论性的东西就不在笔记中作为纪录了. 先来解释下java安装过程中的一些问题,java安装和环境配置不多做强调,可以参考http://www.cnblogs.com/JianXu/p/5158404. ...

  9. Ansible10:Playbook的角色及包含

    目录 说明 一.Playbook的包含 1.tasks包含 2.handlers包含 3.混合包含 二.角色(roles) 1.创建role 2.引用roles 3.pre_tasks和post_ta ...

  10. etcd基本操作

    目录 概述 安装etcd 使用etcdctl操作etcd 数据库操作 非数据库操作 使用curl操作etcd 概述 etcd是一个用于共享配置和服务的高可用键值存储系统,由CoreOS使用开发并作为C ...