USB设备参数分析

本文介绍了USB设备参数结构体USB_DEVICE_INFO及其成员,包括USB_DEVICE_DESCRIPTOR、USB_CONFIGURATION_DESCRIPTOR和USB_INTERFACE_DESCRIPTOR等描述符的含义和作用。在UKEY开发过程中,详细讨论了attachdevice函数中读取设备参数的步骤,特别是设备描述表、配置描述表、接口描述表和端点描述表在设备识别和资源配置中的重要性。
摘要由CSDN通过智能技术生成

USB设备参数结构体的定义

 

USB_DEVICE_INFO类的定义在

D:/WINCE420/PUBLIC/COMMON/OAK/DRIVERS/USB/HCD/COMMON/globals.hpp

 

typedef struct _USB_DEVICE_INFO {

    DWORD                                   dwCount;

 

    USB_DEVICE_DESCRIPTOR                   Descriptor;

    LPNON_CONST_USB_CONFIGURATION           lpConfigs;

    LPNON_CONST_USB_CONFIGURATION        lpActiveConfig;

} USB_DEVICE_INFO, * LPUSB_DEVICE_INFO;

 

1 成员USB_DEVICE_DESCRIPTOR  Descriptorglobals.hpp中没有定义,但在USB协议中有定义.

2 成员LPNON_CONST_USB_CONFIGURATION  lpConfigs,lpActiveConfig的定义

typedef struct _NON_CONST_USB_CONFIGURATION {

    DWORD                                   dwCount;

 

    USB_CONFIGURATION_DESCRIPTOR            Descriptor;

    LPBYTE                                  lpbExtended;

    // Total number of interfaces (including alternates)

    DWORD                                   dwNumInterfaces;

    LPNON_CONST_USB_INTERFACE               lpInterfaces;

} NON_CONST_USB_CONFIGURATION,LPNON_CONST_USB_CONFIGURATI;

  UKEY开发中涉及的几个描述符

UKEY驱动开发的过程中,主要在attachdevice函数中读取设备的参数,有时读取的参数可能是错的,这是就必须对参数进行强行赋值,然后传到pdatabuffer.主要涉及的参数有以下几个:

(1)    deviceInfo. Descriptor//设备描述表, attachdevice的第6/7步读取.

(2)    deviceInfo. lpConfigs. Descriptor//配置描述表,attachdevice的第9步读取.

(3)    deviceInfo. lpConfigs. lpInterfaces. Descriptor//接口描述表第10步读取

(4) deviceInfo. lpConfigs. lpEndpoints. Descriptor//接口描述表第10步读取

1设备

设备描述表给出了USB设备的一般信息。这包括对设备及所有设备配置起全程作用的信息。一个USB设备只能有一个设备描述表。

 

设备描述表(USB_DEVICE_DESCRIPTOR  Descriptor)

偏移量

大小

描述

0

bLength

1

数字

此描述表的字节数

1

bDecriptorType

1

常量

描述表种类为设备

2

bcdUSB

2

BCD

此设备与描述表兼容的USB设备说明版本号(BCD 码)

4

bDeviceClass

1

设备类码

如果此域的值为0则一个设置下每个接口指出它自己的类,并个接口各自独立工作。

如果此域的值处于1~FEH之间,则设备在不同的接口上支持不同的类。并这些接口可能不能独立工作。此值指出了,这些接口集体的类定义。

如果此域设为FFH,则此设备的类由厂商定义。

5

bDeviceSubClass

1

子类

子类码

   这些码值的具体含义根据bDeviceClass 域来看。

   bDeviceClass 域为零,此域也须为零

bDeviceClass 域为

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值