Chapter 4 Software Developmentpage 4-87 SET_DESCRIPTOR Update or add a descriptor8 GET_CONFIGURATION Return the current device configuration value9 SET_CONFIGURATION Set the device configuration value10 GET_INTERFACE Return the selected alternate setting for the specified interface11 SET_INTERFACE Set the alternate setting for the specified interface12 SYNCH_FRAME Set and report an endpoint's synchronization frame4-1-12. Device DescriptorsWhen a USB device first connects to the bus, it reports its attributes to the host with a devicedescriptor. Figure 4.1.3 illustrates the hierarchical structure of this data structure with the devicedescriptor for a bidirectional printer.Endpoint descriptors give the physical capabilities of the endpoints already discussed in Section4.1.7 above.Groups of endpoint descriptors form logical communications functions called interfaces. Theseinterfaces support alternate settings for changing the interface and thus device characteristics. Notethat these interfaces are mutually exclusive in that only one can be in use at any given time.n Deviceo Configuration #1u Interface #1 alternate setting #0 ; output-only printer° Endpoint #1 BulkOutu Interface #1 alternate setting #1 ; bidirectional printer° Endpoint #1 BulkOut° Endpoint #2 BulkInu Interface #1 alternate setting #2 ; bidirectional printer° Endpoint #1 BulkOut° Endpoint #2 BulkIn° Endpoint #3 InterruptIn ; Inform of data volumes by interrupt transferFigure 4.1.3. Device Descriptor for Bidirectional PrinterHigher up the hierarchy are the configuration and device layers. The same device can have multipleconfigurations--drawing its power from the bus or its own local power supply, for example. It caneven start as a power-saving device and later switch to a high-consumption one.The following are brief listings of descriptor contents. For detailed descriptions, refer to Section 9.4of the USB version 1.1 specifications.(1) Device descriptorUSB Specification release number in binary coded decimalDevice class codeDevice subclass codeProtocol codeMaximum packet size for endpoint 0 (EP0)Vendor and product IDs