openusb_get_device_data,openusb_free_device_data handle - Libusb handle.
devid - Device's devid.
flags - Reserved.
data - Data returned by openusb of type openusb_dev_data_t
openusb_get_device_data() will return data of the specified device.
Application doesn't have to open the device before calling this function.The data
is stored in the openusb_dev_data_t structure, which has such members:
openusb_busid_t busid; /* busid of the bus this device is on */
openusb_devid_t devid; /* devid of this device */
/* bus address of the bus the device is on */
uint8_t bus_address;
/* parent device id, 0 for root-hub */
openusb_devid_t pdevid;
/* parent port the device is connected to */
uint8_t pport;
/* number of ports on the device, 0 for non-hub device */
uint8_t nports;
/* descriptive path such as /dev/bus/usb/xxx */
char *sys_path;
/* topological path such as 1.2.1 */
char *bus_path;
usb_device_desc_t dev_desc; /* device descriptor */
usb_config_desc_t cfg_desc; /* configuration descriptors */
/* raw configuration desc cloud */
uint8_t *raw_cfg_desc;
/* string descriptors with the first langid */
usb_string_desc_t *manufacturer;
usb_string_desc_t *product;
usb_string_desc_t *serialnumber;
/* max transfer size for each request, 0 if not supported */
uint32_t ctrl_max_xfer_size;
uint32_t intr_max_xfer_size;
uint32_t bulk_max_xfer_size;
uint32_t isoc_max_xfer_size;
|
Application should call openusb_free_device_data to
free memory space allocated in openusb_get_device_data.
openusb_get_device_data() may have such return values:
LIBUSB_SUCCESS - Success.
LIBUSB_NO_RESOURCES - Memory allocation failure.
LIBUSB_UNKNOWN_DEVICE - Can't find the device specified by devid.
LIBUSB_PARSE_ERROR - Libusb fails to get device, configuration or string descriptors of this device.
LIBUSB_INVALID_HANDLE - Libusb handle is invalid.