Starting with Windows 10, release 1703, a USB Audio 2.0 driver is shipped with Windows. It is designed to support the USB Audio 2.0 device class. The driver is a WaveRT audio port class miniport. For more information about the USB Audio 2.0 device class, see https://www.usb.org/documents?search=&type%5B0%5D=55&items_per_page=50.
Drivers Usb free download - Drivers For Free, CopyTrans Drivers Installer, Adaptec ASPI Drivers, and many more programs. Device driver for all The Imaging Source USB cameras except the 33U, 37U, 38U and AFU auto focus series. Intel Core i3 or similar, 2 GB RAM; USB 3.0 or USB 2.0 controller (depends upon camera model) Graphics card with 24 or 32 bit.
The driver is named: usbaudio2.sys and the associated inf file is usbaudio2.inf.
Jun 14, 2016 Unknown Device Identifier 9.01 on 32-bit and 64-bit PCs. This download is licensed as freeware for the Windows (32-bit and 64-bit) operating system on a laptop or desktop PC from drivers without restrictions. Unknown Device Identifier 9.01 is available to all software users as a free download for Windows.
The driver will identify in device manager as 'USB Audio Class 2 Device'. This name will be overwritten with a USB Product string, if it is available.
The driver is automatically enabled when a compatible device is attached to the system. However, if a third-party driver exists on the system or Windows Update, that driver will be installed and override the class driver.
usbaudio2.sys fits within the wider architecture of Windows USB Audio as shown.
Related USB specifications
The following USB specifications define USB Audio and are referenced in this topic.
- USB-2 refers to the Universal Serial Bus Specification, Revision 2.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, test specifications and tools.
The driver supports the formats listed below. An alternate setting which specifies another format defined in FMT-2, or an unknown format, will be ignored.
Type I formats (FMT-2 2.3.1):
- PCM Format with 8..32 bits per sample (FMT-2 188.8.131.52.1)
- PCM8 Format (FMT-2 184.108.40.206.2)
- IEEE_FLOAT Format (FMT-2 220.127.116.11.3)
Type III formats (FMT-2 2.3.3 and A.2.3):
This section describes the features of the USB Audio 2.0 driver.
Audio function topology
The driver supports all entity types defined in ADC-2 3.13.
Each Terminal Entity must have a valid clock connection in compatible USB Audio 2.0 hardware. The clock path may optionally include Clock Multiplier and Clock Selector units and must end in a Clock Source Entity.
The driver supports one single clock source only. If a device implements multiple clock source entities and a clock selector, then the driver will use the clock source that is selected by default and will not modify the clock selector’s position.
A Processing Unit (ADC-2 3.13.9) with more than one input pin is not supported.
An Extension Unit (ADC-2 3.13.10) with more than one input pin is not supported.
Cyclic paths in the topology are not allowed.
The driver supports the following endpoint synchronization types (USB-2 18.104.22.168):
- Asynchronous IN and OUT
- Synchronous IN and OUT
- Adaptive IN and OUT
For the asynchronous OUT case the driver supports explicit feedback only. A feedback endpoint must be implemented in the respective alternate setting of the AS interface. The driver does not support implicit feedback.
There is currently limited support for devices using a shared clock for multiple endpoints.
For the Adaptive IN case the driver does not support a feedforward endpoint. If such an endpoint is present in the alternate setting, it will be ignored. The driver handles the Adaptive IN stream in the same way as an Asynchronous IN stream.
The size of isochronous packets created by the device must be within the limits specified in FMT-2.0 section 22.214.171.124. This means that the deviation of actual packet size from nominal size must not exceed +/- one audio slot (audio slot = channel count samples).
An audio function must implement exactly one AudioControl Interface Descriptor (ADC-2 4.7) and one or more AudioStreaming Interface Descriptors (ADC-2 4.9). A function with an audio control interface but no streaming interface is not supported.
The driver supports all descriptor types defined in ADC-2, section 4. The following subsections provide comments on some specific descriptor types.
Class-Specific AS interface descriptor
For details on this specification, refer to ADC-2 4.9.2.
An AS interface descriptor must start with alternate setting zero with no endpoint (no bandwidth consumption) and further alternate settings must be specified in ascending order in compatible USB Audio 2.0 hardware.
An alternate setting with a format that is not supported by the driver will be ignored.
Best Usb Devices
Each non-zero alternate setting must specify an isochronous data endpoint, and optionally a feedback endpoint. A non-zero alternate setting without any endpoint is not supported.
The bTerminalLink field must refer to a Terminal Entity in the topology and its value must be identical in all alternate settings of an AS interface.
The bFormatType field in the AS interface descriptor must be identical to bFormatType specified in the Format Type Descriptor (FMT-2 126.96.36.199).
For Type I formats, exactly one bit must be set to one in the bmFormats field of the AS interface descriptor. Otherwise, the format will be ignored by the driver.
To save bus bandwidth, one AS interface can implement multiple alternate settings with the same format (in terms of bNrChannels and AS Format Type Descriptor) but different wMaxPacketSize values in the isochronous data endpoint descriptor. For a given sample rate, the driver selects the alternate setting with the smallest wMaxPacketSize that can fulfill the data rate requirements.
Type I format type descriptor
For details on this specification, refer to FMT-2 188.8.131.52.
The following restrictions apply:
|Format||Subslot size||Bit resolution|
|Type I PCM format:||1 <= bSubslotSize <= 4||8 <= bBitResolution <= 32|
|Type I PCM8 format:||bSubslotSize 1||bBitResolution 8|
|Type I IEEE_FLOAT format:||bSubslotSize 4||bBitResolution 32|
|Type III IEC61937 formats:||bSubslotSize 2||bBitResolution 16|
Class-Specific AS isochronous audio data endpoint descriptor
For details on this specification, refer to ADC-2 184.108.40.206.
The MaxPacketsOnly flag in the bmAttributes field is not supported and will be ignored.
The fields bmControls, bLockDelayUnits and wLockDelay will be ignored.
Class requests and interrupt data messages
The driver supports a subset of the control requests defined 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||GET CUR||SET CUR||GET RANGE||INTERRUPT|
|Clock Source||Sampling Frequency Control||x||x||x|
|Clock Selector||Clock Selector Control||x|
|Clock Multiplier||Numerator Control||x|
|Mixer Unit||Mixer Control||x||x||x|
|Selector Unit||Selector Control||x||x|
|Feature Unit||Mute Control||x||x||x|
|Automatic Gain Control||x||x|
Additional information on the controls and requests is available in the following subsections.
Clock source entity
For details on this specification, refer to ADC-2 220.127.116.11.
At a minimum, a Clock Source Entity must implement Sampling Frequency Control GET RANGE and GET CUR requests (ADC-2 18.104.22.168.1) in compatible USB Audio 2.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 discrete sampling frequency must be expressed by setting MIN and MAX fields to the respective frequency and RES to zero. Individual subranges must not overlap. If a subrange overlaps a previous one, it will be ignored by the driver.
A Clock Source Entity which implements one single fixed frequency only does not need to implement Sampling Frequency Control SET CUR. It implements GET CUR which returns the fixed frequency, and it implements GET RANGE which reports one single discrete frequency.
Clock selector entity
For details on this specification, refer to ADC-2 22.214.171.124
The USB Audio 2.0 driver does not support clock selection. The driver uses the Clock Source Entity which is selected by default and never issues a Clock Selector Control SET CUR request. The Clock Selector Control GET CUR request (ADC-2 126.96.36.199.1) must be implemented in compatible USB Audio 2.0 hardware.
For details on this specification, refer to ADC-2 188.8.131.52.
The driver supports one single volume range only. If the Volume Control GET RANGE request returns more than one range, then subsequent ranges will be ignored.
The volume interval expressed by the MIN and MAX fields should be an integer multiple of the step size specified in the RES field.
If a feature unit implements single channel controls as well as a master control for Mute or Volume, then 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 against the supplied in-box driver.
There is not any specific partner customization that is associated with the in-box USB Audio 2.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.
The in-box driver registers for the following compatible IDs with usbaudio2.inf.
See the USB audio 2.0 specification for subclass types.
USB Audio 2.0 Devices with MIDI (subclass 0x03 above) will enumerate the MIDI function as a separate multi-function device with usbaudio.sys (USB Audio 1.0 driver) loaded.
The USB Audio 1.0 class driver registers this compatible ID with wdma_usb.inf.
And has these exclusions:
An arbitrary number of channels (greater than eight) are not supported in shared mode due to a limitation of the Windows audio stack.
IHV USB Audio 2.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 driver to explicitly override this behavior and use the in-box driver.
Audio Jack Registry Descriptions
Starting in Windows 10 release 1703, IHVs that create USB Audio Class 2.0 devices having one or more jacks have the capability to describe these jacks to the in-box Audio Class 2.0 driver. The in-box driver 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 key).
The following describes the audio jack information settings in the registry:
<tid> = terminal ID (As defined in the descriptor)
<n> = Jack number (1 ~ n).
Convention for <tid> and <n> is:
- Base 10 (8, 9, 10 rather than 8, 9, a)
- No leading zeros
- n is 1-based (first jack is jack 1 rather than jack 0)
T1_NrJacks, T1_J2_ChannelMapping, T1_J2_ConnectorType
Download Microboards Usb Devices Driver Win 7
For additional audio jack information, see KSJACK_DESCRIPTION structure.
These registry values can be set in various ways:
Download Microboards Usb Devices Driver Windows 10
By using custom INFs which wrap the in-box INF for the purpose to set these values.
Directly by the h/w device via a Microsoft OS Descriptors for USB devices (see example below). For more information about creating these descriptors, see Microsoft OS Descriptors for USB Devices.
Microsoft OS Descriptors for USB Example
The following Microsoft OS Descriptors for USB example contains the channel mapping and color for one jack. The example is for a non-composite device with single feature descriptor.
The IHV vendor should extend it to contain any other information for the jack description.
If the driver does not start, the system event log should be checked. The driver 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 indicate 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 information 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 work in Windows 10 version 1703 see, USB Audio Not Playing
If you run into a problem with this driver, collect audio logs and then follow steps outlined in this blog entry to bring it to our attention via the Feedback Hub.
This USB Audio 2.0 class driver was developed by Thesycon and is supported by Microsoft.
Download Microboards Usb Devices Driver Windows 7
The USB Device Tree Viewer, short UsbTreeView is based upon the Microsoft 'USBView' sample application found in the Windows Driver Development Kits and now standalone at GitHub.
But it is source code only, there is no executable for end users provided. Meanwhile USBView comes as executables as part of the 'Debugging Tools für Windows', see here: USBView.
UsbTreeView started with the USBView source code from the DDK for Server 2003. Here are the improvements I've done:
- Informations from the Windows Device Management are collected and matched with the found USB devices; Therefore UsbTreeView can show the child devices, including drive letters and COM-ports
- Window position is saved
- Background color and font of the right pane can be set (the font shown in the screenshots is DOSLike 7)
- Keeps the tree item selection over refresh
- TreeView highlighting of arrived and removed devices
- Shows open handles on failed safe removal
- Way more descriptors are decoded, as Audio 2.0
- Hexdump of the descriptors can be shown
- Safe removal, device restart and port restart
- Extended USB information available under Windows 8 and 10 (taken from the latest USBView sample application)
- Extended information about host controllers
- Failed USB requests are re-tried in the background, e.g. if a USB mouse was moved while requesting its properties
- Toolbar with jump-lists for easily finding devices in complex trees
- TreeView with handmade 16x16 icons, USBView used 32x32 icons scaled down to 15x15
- many minor improvements
- No more enumeration of all devices on arrival and removal of a USB device
- Search function (not full text, only things like device ID, drive letter, volume name etc)
- Some new Keyboard shortcuts (Alt+D to open the drives list, Alt+O the Others list, Alt+S to focus the search edit, Alt+Left/Right to cycle thru the search hits
- Options not to expand empty hubs or hub with only empty hubs attached
- Options to jump to arrived and removed devices
- Option to expand tree items to make selected arrived and removed devices visible
- Option to rename tree items (press F2 or single-click it when selected)
- Uses Windows visual theme with option to turn it off
- Can write and read a report in XML format (not compatibel with USBview's)
| Latest History|
- Bugfix: Crash on Windows 8, 8.1, Server 2008 when dealing with companion ports
- New: Highlight for companion ports (Win8+)
- New: Right-click -> Copy Tree from here can copy a full treeview screenshot
- Bugfix: since V3.4.0 copy tree to clipboard did not work
- Bugfix: since V3.4.1 possible crash when restarting a hub
- Bugfix: since V3.4.1 SuperSpeed ports got no 'S' icon and max speed shown as SuperSpeedPlus
- Bugfix: V3.4.1 crashed on pre-Win8 systems
- Bugfix: Child devices sorted by device id instead of kernel name, at least for devices the author came across with this leads to better sorting, e.g. for COM ports
- Bugfix: TreeView's context menu did not work on negative mouse coordinates (on screens left of the main screen)
- New: Shows a summary with the most interesting information
- New: Can shows sum of used endpoints of all devices attached to a root-hub in the tree-view
- New: Remembers which ports have ever operated at SuperSpeedPlus (because so far there is no way to request the capability)
- Bugfix: Crash with failed USB hub
- New: UVC 1.5 H.264 descriptors are decoded
- New: More device interface GUIDs are resolved
- New: Reporting a USB version of 2.0 is blamed as an error if the device does not deliver an 'other_speed' device_qualifier descriptor because USB 2.0 spec says 184.108.40.206: 'Devices that are high-speed capable must set the version number in the bcdUSB field of their descriptors to 0200H. This indicates that such devices support the other_speed requests defined by USB 2.0.'
- New: Contains nearly 12000 vendor names from usbif.json instead of 1000 from the former usb.if
- New: Option to allow only one instance running
- New: Nodes of devices with a problem show a tool-tip with a problem description
- Bugfix: Renamed tree items not shown with the customized name on startup
- New: Shows Registry flags under HKLMSYSTEMCurrentControlSetControlusbstorVVVVPPPP
- New: Sum of used endpoints shown for root-hubs
- New: Option to show the number of used endpoints in the tree
- Bugfix: Crashs on device removal
- Bugfix: Sometimes truncated XML report
- New: A selected tree node can be renamed by pressing F2 or single left-click it (needs admin privileges)
- New: Finds root hubs which are not the child device of their host controller (often seen on virtual USB over LAN)
- Bugfix: Text report by command-line did not work since V3.3.0
- Bugfix: Device arrivals not detected when registry contains wrong device path for a USB hub
- New: Can write and read a report in XML format
- Bugfix: Crash when showing open handle after failed safe removal of a device with a COM port
- Bugfix: MessageBox was shown after writing a report by command-line
- Bugfix: guidExtensionCode in 'Video Control Extension Unit Descriptor' was not shown
- New: Name of guidExtensionCode (e.g. 'YUY2') is extracted from the first four bytes of the GUID
- Bugfix: Some strings for Smart Card Functional Descriptor where shown as question marks
- Bugfix: UVC frame intervals where shown without fraction of milliseconds for continuous frame type
- Bugfix: UVC frame intervals where shown without fraction of milliseconds
- Bugfix: Under XP the UsbTreeView process did not end after using 'Safely Remove'
- New: Highlight color of selected item darker
- New: TreeView highlighting as known from the SysInternals ProcessExplorer
- New: On failed 'safe removal' it shows open handles found for the device ID Windows returns as VetoName
- New: Shows global registry USB flags under HKLMSYSTEMCurrentControlSetControlUsbFlags and HKLMSYSTEMCurrentControlSetServicesusbhubhubg
- New: Detects arrival of USB devices even its driver fails to start, e.g. if no driver is installed yet
- New: Detects childs of USB devices even they don't generate device notifications nor they are enumerated by SetupDiGetClassDevs (seen on Arduino Micro)
- Bugfix: Device Qualifier Descriptor was requested even the device is running at SuperSpeed
- New: Option to show the port chain instead the port number in the tree
- Bugfix: Some hexdumps where missing
- Bugfix: Device Qualifier Descriptor was requested for USB 1.x devices
- New: Copy tree to clipboard function
- New: Text copied to clipboard as HTML fragment enclosed in <pre> tags to get a monospaced font offhand
- New: SmartCard Reader Feature Descritpor decoded
- Bugfix: Volume of CDROM drives not recognized on arrival
- Bugfix: Wrong value shown for Clock Selector in Audio Control Clock Selector Unit Descriptor 2.0
- New: Full enumeration when missing USB device notifcation is detected (workaround for SILEX USB Device Servers)
V3.1.1 (06 May 2017)
- Bugfix: Occasional crash on safe removal
- Bugfix: Since V3.0.6 no device information for UHCI controllers under Windows 2000
- Bugfix: wPacketSize decoded wrong if SuperSpeed device reported a Device Bus Speed of 0x02
V3.1.0 (24 Feb 2017)
- New: Can show multiple Configuration and Other-Speed-Configuration Descriptors
- New: TreeView sub-menu to copy some id strings to clipboard
V3.0.8 (01 Jan 2017)
- Bugfix: Removal of storage volumes not handled correctly
- New: Project is UNICODE now, so non-ASCII string descriptors are shown correctly even the Windows ANSI codepage cannot
- New: Improved robustness when decoding invalid descriptors
- New: Option 'Always On Top'
V3.0.7 (09 Dec 2016)
- Bugfix: No more font change in the text pane when hitting some special charaters
V3.0.6 (10 Nov 2016)
- New: Improved detection of arrival/removal of child devices
- New: Devices in low power state and problem code 0 get a 'D1', 'D2' etc icon instead of an exclamation mark
- New: Workaround for a strange phenomenon: On some Windows device notifications come with wide strings even RegisterDeviceNotificationA was used; This is dealt with now.
V3.0.5 (03 Nov 2016)
- New: Support for virtual USB Controllers where Hostcontroller and Root-Hub are one and the same device
V3.0.4 (15 Aug 2016)
- New: Port property PortConnectorIsTypeC (Win10 only)
V3.0.3 (29 June 2016)
- New: Device Manager problem numbers shown in the treeview icons
V3.0.2 (16 June 2016)
- New: Search hits get highlighted in the text pane (which is a RichEdit control now)
V3.0.1 (13 June 2016)
- Bugfix: Dropdown lists not refreshed on device arrival and removal
V3.0.0 (12 June 2016)
- Bugfix: Crash on full refresh
- New: No more enumeration of all devices on arrival and removal of a USB device
- New: Search function (not full text, only things like device ID, drive letter, volume name etc)
- New: Toolbar controls shrink if required
- New: Some new Keyboard shortcuts (Alt+D to open the drives list, Alt+O the Others list, Alt+S to focus the search edit, Alt+Left/Right to cycle thru the search hits
- New: options not to expand empty hubs or hub with only empty hubs attached
- New: options to jump to arrived and removed devices
- New: option to expand tree items to make selected arrived and removed devices visible
- New: Uses Windows visual theme with option to turn it off
Here we have an old XP Computer with one single USB 1.1 host controller. As every USB host controller it has exactly one USB root-hub. The root-hub has two ports, at port 1 there is a USB mass storage device attached which is mounted at drive letter Z:. Even the USB drive is USB 2.0 it is running at Full-Speed only because it is attached to a USB 1.1 hub.
Here we have Win7 Computer with an Intel P35 chipset which has 8 USB 2.0 High-Speed capable ports. The 8 physical ports are split here: 4 USB 1.1 controllers deal with USB low and Full-Speed devices while one USB 'Enhanced' controller deals with the High-Speed devices. I don't know why the 1.1 ports are split over 4 controllers with 2 ports each. Since all manufactures do this, there must be a good reason...
The USB High-Speed controllers usually have the keyword 'Enhanced' in their device name. Since Vista the 'USB Hub Capabilities' can be checked for the 'HighSpeed' flag.
At port 1 of the Enhanced controller there is a USB High-Speed hub attached and at his port 4 there is a USB mass storage device attached which is thanks to USBDLM mounted at drive letter Z: again. Here it is running at High-Speed.
Newer Intel chipset have no more USB1 root hubs. Instead there are two integrated standard hubs which translate Low and Full-Speed into High-Speed. Intel calls them 'Integrated USB 2.0 Rate Matching Hub'.
Here we have a Win8 Computer with a Texas Instrumens TUSB7340 USB SuperSpeed controller card. Windows 8 has native support for USB 3.0 SuperSpeed and an enhanced USB stack which delivers more information, e.g. which speed each port supports. Therefore UsbTreeView can show a 'H' in the icon of the high-speed ports and an 'S' for the SuperSpeed ports. Still missing is the information about the supported SuperSpeed (5, 10 or 20 GBits/s)
The TUSB7340 has 4 physical ports. 4 logical ports are for low, full and high-speed devices and another 4 for SuperSpeed devices. Windows 8 also delivers information about which logical ports belong together. In the screenshot you see that the selected port 4 has the CompanionPortNumber 8, this means that port 4 and 8 share the same physical port.
USB 3.0 Hub
USB3 hubs are in fact two completely independend hubs, one for SuperSpeed and the other one for High, Full and Low-Speed devices.
The only thing in common is that both appear connected to ports which are mutual 'companion ports'.
Here port 20 is the companion port of port 9 and vice versa:
A USB3 device first tries to establish a stable communication with the USB3 port. If that fails (for instance because of a too long or too bad cable) then it tries the USB2 HighSpeed connection which usually works then because its electrical requirements are much lower.
Intel Series 8 xHCI Controller
Here we have a bunch of yellow exclamation marks on a Intel Series 8 xHCI controller on a Asus H81-Plus board. Its ports 11 to 15 have a connection status 3 'Device general failure' which leads to the yellow exclamation marks in the tree view.
Intel's xHCI controllers are quite flexible and need a correct initialisation by the mainboard's BIOS. I don't know this is Intel's or the BIOS maker's fault. As long as all physical ports work as expected this is a cosmetic problem.
| Identify simple BadUSB Devices|
Simple BadUSB devices are USB composite devices, so they keep their usual functionality but have an additional 'bad' function as a keyboard or a network adaptor.
By means of UsbTreeView you can check:
The BadUSB device demonstrated by Adam Caudill and Brandon Wilson at github.com looks like this: Note that it is a Composite Device, that is has two child devices - the expected disk and the potentially bad keyboard.
A regular USB drive look like this: USBDLM can ask on arrival of a new keyboard or network device if it shall be activated:
| Conditions and Download|
Download latest release:
Download old V3.0.2 (last without RichEdit control):
Download old V2.6.1 (last 2.x):
Download old V2.0.2:
Download old V1.5:
Other old releases are available under the usbtreeviewNNN.zip names.
UsbTreeView is Freeware.
- usage in any environment, including commercial
- include in software products, including commercial
- include on CD/DVD of computer magazines
- distribution by means of packet managers
- modify any of the files
- offer for download by means of a 'downloader' software
I don't ask for donations but some users insist, so:
| Similar Tools|
Information about serial COM ports:
COM Port Info
Information about drives:
USB Drive Info