Hi, On Sat, Sep 11, 2004 at 07:07:01PM -0400, Mbosowo I Sampson wrote:
No. 1: > SetupPacket: > 0000: 80 06 00 01 00 00 12 00 > bmRequestType: 80 > DIR: Device-To-Host So this URB is the answer to a request from the host. > TYPE: Standard No vendor-specific command. > RECIPIENT: Device The request was sent to the device as a whole (not a specific interface or endpoint). > bRequest: 06 > GET_DESCRIPTOR That's a standard request. > Descriptor Type: 0x0001 > DEVICE We want to get the device descriptor (wValue = 1). No. 2: > 0000: 80 06 00 02 00 00 09 00 > bmRequestType: 80 > DIR: Device-To-Host > TYPE: Standard > RECIPIENT: Device > bRequest: 06 > GET_DESCRIPTOR > Descriptor Type: 0x0002 > CONFIGURATION Same as above but this time we want to get the configuration descriptor (wValue = 2). Also we limit the transfer size to 9 bytes (wLength = 9). That's the minimum size of a descriptor. > TransferBuffer: 0x00000009 (9) length > 0000: 09 02 27 00 01 01 00 e0 01 > bLength : 0x09 (9) > bDescriptorType : 0x02 (2) > wTotalLength : 0x0027 (39) But really the descriptor has 0x27 bytes. So we get it again with 0x27 bytes: No. 3: > 0000: 80 06 00 02 00 00 27 00 And we got all 0x27 bytes. So these three requests are actually different. > 4 ??? down n/a 0.093 SELECT_CONFIGURATION > URB Header (length: 100) That's a new request. Now that we have all descriptors, we can set the configuration (config 0 usually). Bye, Henning
