USB Sound ii.0 Drivers

Starting with Windows 10, release 1703, a USB Audio two.0 driver is shipped with Windows. Information technology is designed to back up the USB Audio 2.0 device class. The driver is a WaveRT audio port class miniport. For more than information about the USB Audio 2.0 device class, see
https://www.usb.org/documents?search=&type%5B0%5D=55&items_per_page=50.

The commuter is named:
usbaudio2.sys
and the associated inf file is
usbaudio2.inf.

The driver volition identify in device manager equally “USB Audio Course 2 Device”. This name will exist overwritten with a USB Product string, if it is bachelor.

The commuter is automatically enabled when a compatible device is fastened to the organisation. Yet, if a 3rd-political party driver exists on the organisation or Windows Update, that driver volition be installed and override the class commuter.

Compages

usbaudio2.sys fits within the wider compages of Windows USB Sound as shown.

stack diagram showing Kmixer.sys at the top and a USB audio device at the bottom.

The following USB specifications ascertain USB Audio and are referenced in this topic.

  • USB-2 refers to the Universal Serial Motorbus Specification, Revision two.0
  • ADC-2 refers to the USB Device Class Definition for Audio Devices, Release 2.0.
  • FMT-2 refers to the Audio Data Formats specification, Release 2.0.

The USB-IF is a special interest group that maintains the
Official USB Specification, examination specifications and tools.

Audio formats

The commuter supports the formats listed below. An alternate setting which specifies some other format defined in FMT-ii, or an unknown format, will exist ignored.

Type I formats (FMT-2 two.3.i):

  • PCM Format with eight..32 bits per sample (FMT-2 two.three.1.7.1)
  • PCM8 Format (FMT-two 2.3.1.seven.ii)
  • IEEE_FLOAT Format (FMT-2 two.three.1.seven.3)

Blazon III formats (FMT-ii 2.3.iii and A.two.3):

  • IEC61937_AC-three
  • IEC61937_MPEG-2_AAC_ADTS
  • IEC61937_DTS-I
  • IEC61937_DTS-II
  • IEC61937_DTS-III
  • TYPE_III_WMA

Characteristic descriptions

This section describes the features of the USB Sound 2.0 driver.

Audio office topology

The driver supports all entity types divers in ADC-2 3.xiii.

Each Terminal Entity must have a valid clock connexion in compatible USB Audio ii.0 hardware. The clock path may optionally include Clock Multiplier and Clock Selector units and must end in a Clock Source Entity.

The commuter supports one single clock source only. If a device implements multiple clock source entities and a clock selector, so the driver will employ the clock source that is selected by default and will non modify the clock selector’s position.

A Processing Unit of measurement (ADC-2 iii.xiii.nine) with more than than one input pin is non supported.

An Extension Unit of measurement (ADC-2 3.13.10) with more than than ane input pivot is non supported.

Cyclic paths in the topology are non allowed.

Sound streaming

The driver supports the post-obit endpoint synchronization types (USB-2 5.12.4.one):

  • Asynchronous IN and OUT
  • Synchronous IN and OUT
  • Adaptive IN and OUT

For the asynchronous OUT case the commuter supports explicit feedback just. A feedback endpoint must be implemented in the respective alternate setting of the AS interface. The driver does not support implicit feedback.

In that location is currently limited support for devices using a shared clock for multiple endpoints.

For the Adaptive IN case the driver does not back up a feedforward endpoint. If such an endpoint is present in the alternate setting, it will be ignored. The commuter handles the Adaptive IN stream in the same style as an Asynchronous IN stream.

Read:  Download Driver All in One Windows 7

The size of isochronous packets created past the device must be within the limits specified in FMT-2.0 department 2.3.1.ane. This ways that the deviation of actual packet size from nominal size must not exceed +/- 1 audio slot (audio slot = channel count samples).

Descriptors

An sound function must implement exactly ane AudioControl Interface Descriptor (ADC-2 4.7) and 1 or more than AudioStreaming Interface Descriptors (ADC-ii iv.9). A function with an audio command interface simply no streaming interface is non supported.

The driver supports all descriptor types divers in ADC-2, department iv. The following subsections provide comments on some specific descriptor types.

Class-Specific Equally interface descriptor

For details on this specification, refer to ADC-2 4.9.2.

An As interface descriptor must start with alternate setting naught with no endpoint (no bandwidth consumption) and further alternate settings must be specified in ascending social club in uniform USB Sound 2.0 hardware.

An alternating setting with a format that is not supported by the driver will exist ignored.

Each non-zero alternate setting must specify an isochronous information endpoint, and optionally a feedback endpoint. A non-zero alternating setting without whatever endpoint is not supported.

The bTerminalLink field must refer to a Concluding Entity in the topology and its value must be identical in all alternating settings of an AS interface.

The bFormatType field in the As interface descriptor must be identical to bFormatType specified in the Format Blazon Descriptor (FMT-2 two.iii.one.six).

For Type I formats, exactly one chip must be set to one in the bmFormats field of the AS interface descriptor. Otherwise, the format volition be ignored by the driver.

To relieve passenger vehicle bandwidth, one Every bit interface tin implement multiple alternating settings with the same format (in terms of bNrChannels and AS Format Blazon Descriptor) but different wMaxPacketSize values in the isochronous data endpoint descriptor. For a given sample charge per unit, the driver selects the alternating setting with the smallest wMaxPacketSize that tin fulfill the information rate requirements.

Type I format type descriptor

For details on this specification, refer to FMT-two ii.3.1.6.

The following restrictions apply:

Format Subslot size Bit resolution
Blazon I PCM format: one <= bSubslotSize <= 4 8 <= bBitResolution <= 32
Type I PCM8 format: bSubslotSize == 1 bBitResolution == 8
Blazon I IEEE_FLOAT format: bSubslotSize == 4 bBitResolution == 32
Type III IEC61937 formats: bSubslotSize == 2 bBitResolution == 16

Form-Specific AS isochronous audio data endpoint descriptor

For details on this specification, refer to ADC-2 4.10.1.2.

The MaxPacketsOnly flag in the bmAttributes field is not supported and will be ignored.

The fields bmControls, bLockDelayUnits and wLockDelay will be ignored.

Course requests and interrupt data messages

The driver supports a subset of the control requests divers in ADC-2, section 5.2, and supports interrupt data messages (ADC-2 6.1) for some controls. The following table shows the subset that is implemented in the driver.

Entity Control Become CUR SET CUR Become RANGE INTERRUPT
Clock Source Sampling Frequency Control x 10 x
Clock Selector Clock Selector Command x
Clock Multiplier Numerator Control 10
Denominator Command ten
Terminal Connector Control ten x
Mixer Unit Mixer Control x x x
Selector Unit of measurement Selector Control x ten
Feature Unit Mute Control x x x
Volume Control ten x ten x
Automated Gain Control x x
Effect Unit of measurement
Processing Unit
Extension Unit

Additional information on the controls and requests is bachelor in the following subsections.

Clock source entity

For details on this specification, refer to ADC-2 5.2.5.1.

At a minimum, a Clock Source Entity must implement Sampling Frequency Control Go RANGE and GET CUR requests (ADC-2 5.2.v.one.one) in compatible USB Audio two.0 hardware.

The Sampling Frequency Control GET RANGE request returns a list of subranges (ADC-2 5.2.1). Each subrange describes a discrete frequency, or a frequency range. A detached sampling frequency must be expressed by setting MIN and MAX fields to the respective frequency and RES to zero. Private subranges must not overlap. If a subrange overlaps a previous one, it will be ignored by the driver.

Read:  Sony Vaio E Series Vpcea16fg Driver Download

A Clock Source Entity which implements i single fixed frequency only does not demand to implement Sampling Frequency Control SET CUR. It implements Get CUR which returns the fixed frequency, and information technology implements GET RANGE which reports ane single detached frequency.

Clock selector entity

For details on this specification, refer to ADC-2 v.ii.5.2

The USB Sound 2.0 commuter does not support clock selection. The driver uses the Clock Source Entity which is selected by default and never issues a Clock Selector Command Fix CUR asking. The Clock Selector Control GET CUR asking (ADC-2 v.two.5.2.i) must be implemented in compatible USB Audio two.0 hardware.

Feature unit

For details on this specification, refer to ADC-two v.ii.5.7.

The commuter supports one single volume range merely. If the Volume Command Go RANGE request returns more than i range, then subsequent ranges volition be ignored.

The volume interval expressed past the MIN and MAX fields should be an integer multiple of the stride size specified in the RES field.

If a feature unit of measurement implements single channel controls also as a master control for Mute or Volume, and so the driver uses the single channel controls and ignores the master control.

Additional Information for OEM and IHVs

OEMs and IHVs should test their existing and new devices confronting the supplied in-box driver.

There is not any specific partner customization that is associated with the in-box USB Audio two.0 driver.

This INF file entry (provided in a update to Windows Release 1703), is used to identify that the in-box driver is a generic device driver.

            GenericDriverInstalled,,,,i
            
          

The in-box driver registers for the following compatible IDs with usbaudio2.inf.

            USB\Class_01&SubClass_00&Prot_20 USB\Class_01&SubClass_01&Prot_20 USB\Class_01&SubClass_02&Prot_20 USB\Class_01&SubClass_03&Prot_20
            
          

See the USB audio 2.0 specification for subclass types.

USB Audio ii.0 Devices with MIDI (subclass 0x03 higher up) will enumerate the MIDI part as a separate multi-office device with usbaudio.sys (USB Sound 1.0 driver) loaded.

The USB Sound ane.0 form driver registers this compatible ID with wdma_usb.inf.

            USB\Class_01
            
          

And has these exclusions:

            USB\Class_01&SubClass_00&Prot_20 USB\Class_01&SubClass_01&Prot_20 USB\Class_01&SubClass_02&Prot_20 USB\Class_01&SubClass_03&Prot_20
            
          

An arbitrary number of channels (greater than 8) are not supported in shared mode due to a limitation of the Windows sound stack.

IHV USB Sound ii.0 drivers and updates

For IHV provided third party driver USB Audio 2.0 drivers, those drivers will continue to be preferred for their devices over our in-box driver unless they update their commuter to explicitly override this behavior and use the in-box driver.

Audio Jack Registry Descriptions

Starting in Windows ten release 1703, IHVs that create USB Sound Course 2.0 devices having i or more than jacks have the capability to draw these jacks to the in-box Audio Class 2.0 driver. The in-box commuter uses the supplied jack information when handling the KSPROPERTY_JACK_DESCRIPTION for this device.

Jack information is stored in the registry in the device instance key (HW primal).

The post-obit describes the audio jack information settings in the registry:

            REG_DWORD  T<tid>_NrJacks                 # of the jack on this device REG_DWORD  T<tid>_J<north>_ChannelMapping     Channel mask. The value is defined in ksmedia.h. e.k. SPEAKER_FRONT_RIGHT or KSAUDIO_SPEAKER_5POINT1_SURROUND REG_DWORD  T<tid>_J<due north>_ConnectorType      The enum value is define in EPcxConnectionType.  REG_DWORD  T<tid>_J<n>_GeoLocation        The enum value is define in EPcxGeoLocation. REG_DWORD  T<tid>_J<n>_GenLocation        The enum value is define in EPcxGenLocation. REG_DWORD  T<tid>_J<n>_PortConnection     The enum value is define in EPxcPortConnection. REG_DWORD  T<tid>_J<due north>_Color              The color needs to be represent past RGB like this: 0x00RRGGBB (NOT a COLORREF).
            
          

<tid> = terminal ID (As divers in the descriptor)

<north> = Jack number (ane ~ n).

Convention for <tid> and <north> is:

  • Base 10 (viii, 9, 10 rather than viii, 9, a)
  • No leading zeros
  • northward is 1-based (first jack is jack 1 rather than jack 0)
Read:  Alc861 Audio Driver Download Windows 7 32bit

For example:

T1_NrJacks, T1_J2_ChannelMapping, T1_J2_ConnectorType

For additional audio jack information, come across
KSJACK_DESCRIPTION structure.

These registry values can be set up in various ways:

  • By using custom INFs which wrap the in-box INF for the purpose to set these values.

  • Straight past the h/w device via a Microsoft OS Descriptors for USB devices (see example beneath). For more information nearly creating these descriptors, meet
    Microsoft OS Descriptors for USB Devices.

Microsoft Os Descriptors for USB Example

The post-obit Microsoft OS Descriptors for USB example contains the aqueduct mapping and color for ane jack. The example is for a not-composite device with single feature descriptor.

The IHV vendor should extend it to contain whatever other information for the jack description.

            UCHAR Example2_MSOS20DescriptorSetForUAC2 [0x76] = {     //     // Microsoft Os 2.0 Descriptor Set Header     //     0x0A, 0x00,             // wLength - 10 bytes     0x00, 0x00,             // MSOS20_SET_HEADER_DESCRIPTOR     0x00, 0x00, 0x0?, 0x06, // dwWindowsVersion – 0x060?0000 for hereafter Windows version     0x76, 0x00,             // wTotalLength – 118 bytes // update later      //     // Microsoft Os 2.0 Registry Value Feature Descriptor     //     0x42, 0x00,             // bLength - 66 bytes     0x04, 0x00,             // wDescriptorType – 5 for Registry Property     0x04, 0x00,             // wPropertyDataType - 4 for REG_DWORD     0x34, 0x00,             // wPropertyNameLength – 52 bytes     0x54, 0x00, 0x30, 0x00, // Belongings Proper name - “T01_J01_ChannelMapping”     0x31, 0x00, 0x5f, 0x00,     0x4a, 0x00, 0x30, 0x00,     0x31, 0x00, 0x5f, 0x00,     0x43, 0x00, 0x68, 0x00,     0x61, 0x00, 0x6e, 0x00,     0x6e, 0x00, 0x65, 0x00,     0x6c, 0x00, 0x4d, 0x00,     0x61, 0x00, 0x70, 0x00,     0x70, 0x00, 0x69, 0x00,     0x6e, 0x00, 0x67, 0x00,     0x00, 0x00     0x04, 0x00,                       // wPropertyDataLength – 4 bytes     0x02, 0x00, 0x00, 0x00  // PropertyData - SPEAKER_FRONT_RIGHT      //     // Microsoft OS two.0 Registry Value Characteristic Descriptor     //     0x2A, 0x00,             // bLength - 42 bytes     0x04, 0x00,             // wDescriptorType – 5 for Registry Property     0x04, 0x00,             // wPropertyDataType - 4 for REG_DWORD     0x1C, 0x00,             // wPropertyNameLength – 28 bytes     0x54, 0x00, 0x30, 0x00, // Belongings Name - “T01_J01_Color”     0x31, 0x00, 0x5f, 0x00,     0x4a, 0x00, 0x30, 0x00,     0x31, 0x00, 0x5f, 0x00,     0x43, 0x00, 0x6f, 0x00,     0x6c, 0x00, 0x6f, 0x00,     0x72, 0x00, 0x00, 0x00,     0x04, 0x00,             // wPropertyDataLength – four bytes     0x00, 0x00, 0xff, 0x00  // PropertyData - 0xff0000 - RED }
            
          

Troubleshooting

If the driver does not start, the system outcome log should be checked. The commuter logs events which indicate the reason for the failure. Similarly, audio logs can be manually collected following the steps described in
this blog entry. If the failure may point a driver problem, please report it using the Feedback Hub described below, and include the logs.

For information on how to read logs for the USB Audio 2.0 class driver using supplemental TMF files, see
this blog entry. For general data on working with TMF files, see
Displaying a Trace Log with a TMF File.

For information on “Audio services not responding” error and USB audio device does not piece of work in Windows x version 1703 come across,
USB Audio Not Playing

Feedback Hub

If you lot run into a problem with this commuter, collect audio logs and then follow steps outlined in
this blog entry
to bring it to our attention via the Feedback Hub.

Driver development

This USB Audio two.0 class driver was developed by Thesycon and is supported by Microsoft.

See also

Windows Driver Model (WDM)

Sound Drivers Overview

WaveRT Port Commuter

Low Latency Sound