UsbConfiguration UsbConfiguration UsbConfiguration UsbConfiguration UsbConfiguration Class


Provides information about a USB configuration, its descriptors and the interfaces defined within that configuration. For an explanation of a USB configuration, see Section 9.6.3 in the Universal Serial Bus (USB) specification.

public : sealed class UsbConfiguration : IUsbConfiguration
struct winrt::Windows::Devices::Usb::UsbConfiguration : IUsbConfiguration
public sealed class UsbConfiguration : IUsbConfiguration
Public NotInheritable Class UsbConfiguration Implements IUsbConfiguration
// This class does not provide a public constructor.
Windows 10 requirements
Device family
Windows 10 (introduced v10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduced v1)


Within a USB configuration, the number of interfaces and their alternate settings are variable, depending on the number of interfaces that the device supports. You can collect all that information by using: UsbConfigurationDescriptor and UsbConfigurationDescriptor.Descriptors. The UsbConfigurationDescriptor contains the first 9 bytes of the configuration descriptor. The UsbConfigurationDescriptor.Descriptors object contains an array of descriptors associated with all interfaces and their settings.


ConfigurationDescriptor ConfigurationDescriptor ConfigurationDescriptor ConfigurationDescriptor ConfigurationDescriptor

Gets the object that contains the first 9 bytes of the descriptor associated with the USB configuration.

public : UsbConfigurationDescriptor ConfigurationDescriptor { get; }
UsbConfigurationDescriptor ConfigurationDescriptor();
public UsbConfigurationDescriptor ConfigurationDescriptor { get; }
Public ReadOnly Property ConfigurationDescriptor As UsbConfigurationDescriptor
var usbConfigurationDescriptor = usbConfiguration.configurationDescriptor;
UsbConfigurationDescriptor UsbConfigurationDescriptor UsbConfigurationDescriptor

A UsbConfigurationDescriptor object that represents the first 9 bytes of the descriptor associated with the USB configuration.


The received UsbConfigurationDescriptor object represents only the first 9 bytes of the configuration descriptor. To get the entire set of descriptors associated with a USB configuration, use the Descriptors property that gets the array of all descriptors within the configuration.

Descriptors Descriptors Descriptors Descriptors Descriptors

Gets an array of objects that represent the full set of descriptors associated with a USB configuration.

public : IVectorView<UsbDescriptor> Descriptors { get; }
IVectorView<UsbDescriptor> Descriptors();
public IReadOnlyList<UsbDescriptor> Descriptors { get; }
Public ReadOnly Property Descriptors As IReadOnlyList<UsbDescriptor>
var iReadOnlyList = usbConfiguration.descriptors;
IReadOnlyList<UsbDescriptor> IReadOnlyList<UsbDescriptor> IReadOnlyList<UsbDescriptor>

An array of UsbDescriptor objects that contains the full set of descriptors associated with a USB configuration.

UsbInterfaces UsbInterfaces UsbInterfaces UsbInterfaces UsbInterfaces

Gets an array of USB interfaces available in the USB configuration.

public : IVectorView<UsbInterface> UsbInterfaces { get; }
IVectorView<UsbInterface> UsbInterfaces();
public IReadOnlyList<UsbInterface> UsbInterfaces { get; }
Public ReadOnly Property UsbInterfaces As IReadOnlyList<UsbInterface>
var iReadOnlyList = usbConfiguration.usbInterfaces;
IReadOnlyList<UsbInterface> IReadOnlyList<UsbInterface> IReadOnlyList<UsbInterface>

An array of UsbInterface objects.