Jump to content

UsbConfigurationSetDescriptor

From EDM2
Revision as of 16:24, 26 January 2017 by W.m.brul (talk | contribs) (new page)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Description

Warning: Do NOT use this function unless you know your USB device supports it.

Executes the Standard Device Request that updates the Configuration Descriptor.

Syntax

ulrc = UsbConfigurationSetDescriptor(Handle,usLength,pucDescriptor)

Parameters

Handle
the Device Handle received from the previous UsbOpen.
usLength
the desired number of bytes up to 8192 for the whole Configuration Descriptor.
pucDescriptor
the address of the variable containing the Configuration 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

Remarks

Example Code

//Code Snippet - UsbConfigurationSetDescriptor
{
  APIRET ulrc;
  PUCHAR pucDescriptor;
  UCHAR ucDescriptor[4096];
  USHORT usLength = sizeof(ucDescriptor);

  pucDescriptor = &ucDescriptor[0];
  ulrc = UsbConfigurationSetDescriptor(Handle,usLength,pucDescriptor);
  printf("\nUsbConfigurationSetDescriptor - ulrc: 0x%04X (%hu)",ulrc,ulrc);
  if (!ulrc) //success
  {
    int i; printf(" - ConfigurationDescriptor:\n");
    usLength = ucDescriptor[2] + 256 * ucDescriptor[3];
    for (i=0;i<usLength;i++) printf("%02X",ucDescriptor[i]);
  }
}

Related Functions