USB packets can be sent through control endpoints using vendor commands.
Vendor commands are used in the bulksrcsink example of the SDK
When these vendor requests are sent from the host application, it can be handled in the way you want. .
In bulksrcsink example there is one vendor request which passes current event log index to host.
The below vendor request is 0x81 with bytes to transfer (wLength ) as 2 bytes
When vendor command is sent from host application. I am sending it from control center
The direction of data is IN here (data is transferred from FX3 to host).
Similarly you can define vendor commands and then handle them accordingly
Other examples in SDK which have vendor commands are i2cregmode, i2cdmamode. Please refer to readme.txt file of these firmware examples to understand better.
Please let me know if any queries on this