Spinpoint M8U-Internal Product Manual REV 3.4
79
INSTALLATION
6.3.6.4.6 Interface Descriptor
The interface descriptor describes a specific interface within a configuration. A configuration provides one or
more interfaces, each with zero or more endpoint descriptors describing a unique set of endpoints within the
configuration. When a configuration supports more than one interface, the endpoint descriptors for a particular
interface follow the interface descriptor in the data returned by the GetConfiguration() request.
An interface descriptor is always returned as part of a configuration descriptor. Interface descriptors cannot
be directly accessed with a GetDescriptor() or SetDescriptor() request.
An interface may include alternate settings that allow the endpoints and/or their characteristics to be varied
after the device has been configured. The default setting for an interface is always alternate setting zero. The
SetInterface() request is used to select an alternate setting or to return to the default setting. The
GetInterface() request returns the selected alternate setting.
Alternate settings allow a portion of the device configuration to be varied while other interfaces remain in
operation. If a configuration has alternate settings for one or more of its interfaces, a separate interface
descriptor and its associated endpoints are included for each setting.
If a device configuration supported a single interface with two alternate settings, the configuration descriptor
would be followed by an interface descriptor with the bInterfaceNumber and bAlternateSetting fields set to
zero and then the endpoint descriptors for that setting, followed by another interface descriptor and its
associated endpoint descriptors. The second interface descriptor’s bInterfaceNumber field would also be set
to zero, but the bAlternateSetting field of the second interface descriptor would be set to one.
If an interface uses only endpoint zero, no endpoint descriptors follow the interface descriptor. In this case,
the bNumEndpoints field must be set to zero.
An interface descriptor never includes endpoint zero in the number of endpoints. Table 6-15 shows the
standard interface descriptor.
Table 6-15: Standard Interface Descriptor