Jump to content

UsbStringGetDescriptor: Difference between revisions

From EDM2
W.m.brul (talk | contribs)
Ak120 (talk | contribs)
mNo edit summary
 
(One intermediate revision by one other user not shown)
Line 3: Line 3:


==Syntax==
==Syntax==
<pre>
ulrc = UsbStringGetDescriptor(Handle,ucIndex,usLanguage,usLength,pucDescriptor)
ulrc = UsbStringGetDescriptor(Handle,ucIndex,usLanguage,usLength,pucDescriptor)
</pre>


==Parameters==
==Parameters==
; Handle : the Device Handle received from the previous UsbOpen.
; Handle : the Device Handle received from the previous UsbOpen.
; ucIndex : the Descriptor Index or 0 to obtain the array of Language Codes.
; ucIndex : the Descriptor Index or 0 to obtain the array of Language Codes.
; usLanguage : the appropriate Language Code as to the array of Language Codes.
; usLanguage : the appropriate Language Code as to the array of Language Codes.
; usLength : the desired number of bytes up to 255 for the whole String Descriptor.
; usLength : the desired number of bytes up to 255 for the whole String Descriptor.
; pucDescriptor : the address of the variable to receive the String Descriptor.
; pucDescriptor : the address of the variable to receive the String Descriptor.


==Return Code==
==Return Code==
<pre>
0x0000 - NO_ERROR
0x0000 - NO_ERROR
 
</pre>
===Errors===
===Errors===
<pre>
<pre>
Line 68: Line 61:


==Related Functions==
==Related Functions==
* [[UsbQueryStringReport]]
* [[UsbConfigurationGetDescriptor]]
* [[UsbDeviceGetDescriptor]]
* [[UsbStringSetDescriptor]]
* [[UsbCtrlMessage]]
* [[UsbOpen]]


[[Category:USBCalls]]
[[Category:USBCalls]]

Latest revision as of 22:37, 13 September 2021

Description

Executes the Standard Device Request that obtains the String Descriptor.

Syntax

ulrc = UsbStringGetDescriptor(Handle,ucIndex,usLanguage,usLength,pucDescriptor)

Parameters

Handle
the Device Handle received from the previous UsbOpen.
ucIndex
the Descriptor Index or 0 to obtain the array of Language Codes.
usLanguage
the appropriate Language Code as to the array of Language Codes.
usLength
the desired number of bytes up to 255 for the whole String Descriptor.
pucDescriptor
the address of the variable to receive the String Descriptor.

Return Code

0x0000 - NO_ERROR

Errors

0x0006 - ERROR_INVALID_HANDLE
0x0008 - ERROR_NOT_ENOUGH_MEMORY
0x0057 - ERROR_INVALID_PARAMETER
0x005F - ERROR_INTERRUPT
0x0122 - ERROR_TOO_MANY_HANDLES
0x0280 - ERROR_TIMEOUT
0x1B58 - USB_NOT_INIT
0x4000 - USB_IORB_REQUEST
0x80XX - USB_IORB_FAILED
0xFF0D - ERROR_INVALID_DATA
0xFF13 - ERROR_I24_INVALID_PARAMETER
0xFF13 - USB_IDC_PARMERR
0xFF18 - USB_IDC_ADDRINV
0xFF37 - ERROR_DEV_NOT_EXIST
0xFF5D - EROR_NO_ITEMS
0xFFA7 - ERROR_LOCK_FAILED

Remarks

Example Code

//Code Snippet - UsbStringGetDescriptor
{
  APIRET ulrc;
  PUCHAR pucDescriptor;
  UCHAR ucDescriptor[255];
  UCHAR ucIndex = 2;
  USHORT usLanguage = 0x0409;
  USHORT usLength = sizeof(ucDescriptor);

  pucDescriptor = &ucDescriptor[0];
  ulrc = UsbStringGetDescriptor(Handle,ucIndex,usLanguage,usLength,pucDescriptor);
  printf("\nUsbStringGetDescriptor - ulrc: 0x%04X (%hu)",ulrc,ulrc);
  if (!ulrc) //success
  {
    int i; printf(" - StringDescriptor:\n");
    for (i=0;i<ucDescriptor[0];i++) printf("%02X",ucDescriptor[i]);
//  for (i=2;i<ucDescriptor[0];i+=2) printf("%c",ucDescriptor[i]);
  }
}

Related Functions