1.yes ,this is correct
2.It is not needed.
USBUART_1_GetConfiguration() function gets the current configuration of the USB device.
Return Value:uint8: Returns the currently assigned configuration. Returns 0 if the device is not configured.
Thanks, any idea on my questions 3 and 4 ? In particular the connection via a network usb hub.