Author Topic: what is a URB Control Transfer 0x1a?  (Read 3721 times)

ulao

  • Frequent Contributor
  • ****
  • Posts: 172
what is a URB Control Transfer 0x1a?
« on: May 06, 2021, 07:33:47 pm »
I have an application that sends out this to my device.

 URB Control Transfer succeeded
Device Object   0000007c
Driver Object   iusb3xhc

URB Function   URB_FUNCTION_CONTROL_TRANSFER
URB Status   USBD_STATUS_SUCCESS

Endpoint 0   Default Control

Request   Get Descriptor from Device
Descriptor   String 2
String   "USB Receiver"

raw
00000000  1A 03 55 00 53 00 42 00 20 00 52 00 65 00 63 00 65 00 69 00 76 00 65  . . U . S . B .   . R . e . c . e . i . v . e 
00000017  00 72 00                                                              . r .                                         


I'm wondering how to catch this in my USB code.

Would it be in usbFunctionDescriptor or usbFunctionSetup ?

Jan Axelson

  • Administrator
  • Frequent Contributor
  • *****
  • Posts: 3033
    • Lakeview Research
Re: what is a URB Control Transfer 0x1a?
« Reply #1 on: May 09, 2021, 10:47:29 am »
If you are asking how to detect and respond to this request in your device firmware, it should be similar to how the firmware handles other control requests.

erdmann

  • Member
  • ***
  • Posts: 43
Re: what is a URB Control Transfer 0x1a?
« Reply #2 on: June 15, 2021, 06:36:22 am »
This does not look like request at all. It rather looks like string descriptor data returned (by your device ?).

The first byte is the overall length (0x1A = 26 bytes which is exactly the length of the whole data block), the second byte is the descriptor type (0x3 = string descriptor), followed by the string in Unicode (2 bytes per character where the upper byte is zero for any
 character of the ASCII character set).