Hardware Support

A function is a USB device that is able to transmit or receive data or control information over the bus. A function is typically implemented as a separate peripheral device, with a cable that plugs into a port on a hub. However, it is possible to implement multiple functions and an embedded hub with a single USB cable. This is known as a compound device. A compound device appears to the host as a hub with one or more permanently attached USB devices.

Each function contains configuration information that describes its capabilities and resource requirements. Before you can use a function, it must be configured by the host. This configuration includes allocating USB bandwidth and selecting function-specific device configurations.