USBD_GET_DESCRIPTORS

Purpose

Gets standard Universal Serial Bus (USB) descriptors for a logical device.

Syntax

int ioctl (file, USBD_GET_DESCRIPTORS, arg)

Parameters

Item Description
file File descriptor that is obtained when the USB system driver (USBD) special file was opened.
arg Address of the USBDGD structure that is aligned on a 4-byte boundary.

Description

After a successful return from the ioctl operation, a DESCIDX structure is placed at the start of the specified buffer that is followed by the standard device descriptor, configuration descriptor, interface descriptor, endpoint descriptors, human interface device (HID) descriptor (if an HID device is used), hub descriptor (if hub device is used), and string descriptors of the specified logical USB device. The DESCIDX structure provides direct addressability to the individual descriptors. String descriptors are reformed to null terminated American Standard Code for Information Interchange (ASCII) strings for ease of use. All other descriptors adhere to the standard USB format. Since the size of the returned data is typically unknown, the ioctl operation must be called twice. The first time that you call the ioctl operation, set the bufferLength field equal to zero and the buffer field to null. The ioctl operation might fail with the ENOSPC error, however the minBuffLength value is returned that indicates the required size of the buffer. The caller can then allocate the buffer and call the ioctl operation again with the bufferLength field set to the correct value.

Execution environment

This function can be called from the user process environment only.

Return values

Value Description
0 Success.
-1 Failure. Check the errno value for specific failure causes.