Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ab Windows 10, Version 1703, wird ein USB Audio 2.0-Treiber mit Windows ausgeliefert. Es wurde entwickelt, um die USB Audio 2.0-Geräteklasse zu unterstützen. Der Treiber ist ein WaveRT-Audioport der Miniportklasse.
Der Treiber heißt: usbaudio2.sys. Die zugehörige Informationsdatei (INF) ist usbaudio2.inf.
Der Treiber identifiziert im Geräte-Manager als USB-Audioklasse 2-Gerät. Dieser Name wird mit einer USB-Produktzeichenfolge überschrieben, sofern er verfügbar ist.
Wenn ein kompatibles Gerät an das System angeschlossen ist, ist der Treiber aktiviert. Wenn ein Partnertreiber im System oder Windows Update vorhanden ist, wird dieser Treiber installiert und überschreibt den Klassentreiber.
Architektur
Der usbaudio2.sys Treiber passt wie dargestellt in die breitere Architektur von Windows USB Audio.
Verwandte USB-Spezifikationen
Dieser Artikel bezieht sich auf die folgenden USB-Spezifikationen, die USB-Audio definieren.
- USB-2 bezieht sich auf die Universal Serial Bus Specification, Revision 2.0
- ADC-2 bezieht sich auf die USB-Geräteklassendefinition für Audiogeräte, Release 2.0
- FMT-2 bezieht sich auf die Spezifikation für Audiodatenformate, Release 2.0
Die USB-IF ist eine spezielle Interessengruppe, die die offizielle USB-Spezifikation, Testspezifikationen und Tools verwaltet.
Audioformate
Der Treiber unterstützt die hier aufgeführten Formate. Eine alternative Einstellung, die ein anderes format angibt, das in FMT-2 oder einem unbekannten Format definiert ist, wird ignoriert.
Typ I-Formate (FMT-2 2.3.1):
- PCM-Format mit 8..32 Bit pro Beispiel (FMT-2 2.3.1.7.1)
- PCM8-Format (FMT-2 2.3.1.7.2)
- IEEE_FLOAT Format (FMT-2 2 2.3.1.7.3)
Typ III-Formate (FMT-2 2.3.3 und A.2.3):
- IEC61937_AC-3
- IEC61937_MPEG-2_AAC_ADTS
- IEC61937_DTS-I
- IEC61937_DTS-II
- IEC61937_DTS-III
- TYPE_III_WMA
Beschreibung der Funktionen
In diesem Abschnitt werden die Features des USB-Audio 2.0-Treibers beschrieben.
Topologie der Audiofunktion
Der Treiber unterstützt alle Entitätstypen, die in ADC-2 3.13 definiert sind.
Jede Terminalentität muss über eine gültige Uhrverbindung in kompatibler USB-Audio 2.0-Hardware verfügen. Der Taktpfad umfasst optional Clock Multiplier- und Clock Selector-Einheiten und muss in einer Clock Source-Entität enden.
Der Treiber unterstützt nur eine einzelne Uhrquelle. Wenn ein Gerät mehrere Taktquellenentitäten und eine Uhrauswahl implementiert, verwendet der Treiber die standardmäßig ausgewählte Uhrquelle. Es ändert die Position des Taktwahlschalters nicht.
Eine Verarbeitungseinheit (ADC-2 3.13.9) mit mehr als einem Eingabestift wird nicht unterstützt.
Eine Erweiterungseinheit (ADC-2 3.13.10) mit mehr als einem Eingabestift wird nicht unterstützt.
Zyklische Pfade in der Topologie sind nicht zulässig.
Audiostreaming
Der Treiber unterstützt die folgenden Endpunktsynchronisierungstypen (USB-2 5.12.4.1):
- Asynchrones IN und OUT
- Synchrones IN und OUT
- Adaptive IN und OUT
Für das asynchrone OUT-Szenario unterstützt der Treiber nur explizites Feedback. Ein Feedbackendpunkt muss in der jeweiligen alternativen Einstellung der AS-Schnittstelle implementiert werden. Der Treiber unterstützt kein implizites Feedback.
Es gibt derzeit eingeschränkte Unterstützung für Geräte, die eine gemeinsame Uhr für mehrere Endpunkte verwenden.
Für den Adaptive-IN-Fall unterstützt der Treiber keinen Feedforward-Endpunkt. Wenn ein solcher Endpunkt in der alternativen Einstellung vorhanden ist, ignoriert der Treiber ihn. Der Treiber verarbeitet den adaptiven IN-Stream auf die gleiche Weise wie ein asynchroner IN-Stream.
Die Größe von isochronen Paketen, die vom Gerät erstellt wurden, muss sich innerhalb der in FMT-2.0 Abschnitt 2.3.1.1.1 angegebenen Grenzwerte befinden. Diese Anforderung bedeutet, dass die Abweichung der tatsächlichen Paketgröße von der Nominalgröße nicht größer als +/- ein Audioplatz sein darf. Audioplatz = Beispiele für die Kanalanzahl.
Deskriptoren
Eine Audiofunktion muss genau einen AudioControl Interface Descriptor (ADC-2 4.7) und mindestens einen AudioStreaming Interface Descriptors (ADC-2 4.9) implementieren. Eine Funktion mit einer Audiosteuerungsschnittstelle, aber keine Streamingschnittstelle wird nicht unterstützt.
Der Treiber unterstützt alle in ADC-2, Abschnitt 4 definierten Deskriptortypen. In den folgenden Abschnitten werden Kommentare zu einigen Beschreibungstypen bereitgestellt.
Class-Specific AS-Schnittstellendeskriptor
Ausführliche Informationen zu dieser Spezifikation finden Sie unter ADC-2 4.9.2.
Ein AS-Schnittstellendeskriptor muss mit einer alternativen Einstellung null ohne Endpunkt (ohne Bandbreitenverbrauch) beginnen. Weitere alternative Einstellungen müssen in aufsteigender Reihenfolge in kompatibler USB-Audio 2.0-Hardware angegeben werden.
Eine alternative Einstellung mit einem Format, das vom Treiber nicht unterstützt wird, wird ignoriert.
Jede alternative Einstellung ohne Null muss einen isochronen Datenendpunkt und optional einen Feedbackendpunkt angeben. Eine nicht-null alternative Einstellung ohne Endpunkt wird nicht unterstützt.
Das Feld "bTerminalLink" muss eine Terminalentität in der Topologie sehen. Der Wert muss in allen alternativen Einstellungen einer AS-Schnittstelle identisch sein.
Das bFormatType-Feld im AS-Schnittstellendeskriptor muss mit bFormatType identisch sein, der im Formattypdeskriptor (FMT-2 2.3.1.6) angegeben ist.
Bei Typ I-Formaten muss genau ein Bit im bmFormats-Feld der AS-Schnittstellenbeschreibung auf ein Bit festgelegt werden. Andernfalls ignoriert der Treiber das Format.
Um die Busbandbreite zu sparen, kann eine AS-Schnittstelle mehrere alternative Einstellungen mit demselben Format implementieren (in Bezug auf bNrChannels und AS Format Type Descriptor), aber verschiedene wMaxPacketSize-Werte im isochronen Datenendpunktdeskriptor. Bei einer Stichprobenrate wählt der Treiber die alternative Einstellung mit der kleinsten wMaxPacketSize aus, die die Anforderungen an die Datenrate erfüllen kann.
Formattyp-Deskriptor Typ I
Ausführliche Informationen zu dieser Spezifikation finden Sie unter FMT-2 2.3.1.6.
Es gelten folgende Einschränkungen:
| Format | Größe des Teilslots | Bitauflösung |
|---|---|---|
| Typ I PCM-Format: | 1 <= bSubslotSize <= 4 | 8 <= bBitResolution <= 32 |
| Typ I PCM8-Format: | bSubslotSize == 1 | bBitResolution == 8 |
| Typ I IEEE_FLOAT Format: | bSubslotSize == 4 | bBitResolution == 32 |
| Typ III IEC61937-Formate: | bSubslotSize == 2 | bBitResolution == 16 |
Klassenspezifischer isochroner Audiodatenendpunkt-Deskriptor für AS
Ausführliche Informationen zu dieser Spezifikation finden Sie unter ADC-2 4.10.1.2.
Das MaxPacketsOnly-Flag im bmAttributes-Feld wird nicht unterstützt und ignoriert.
Die Felder bmControls, bLockDelayUnits und wLockDelay werden ignoriert.
Klassenanforderungen und Unterbrechen von Datennachrichten
Der Treiber unterstützt eine Teilmenge der in ADC-2, Abschnitt 5.2 definierten Steuerelementanforderungen. Es unterstützt Unterbrechungsdatenmeldungen (ADC-2 6.1) für einige Steuerelemente. Die folgende Tabelle zeigt die Teilmenge, die im Treiber implementiert ist.
| Entität | Steuerung | GET CUR | CUR SETZEN | BEREICH ABRUFEN | UNTERBRECHEN |
|---|---|---|---|---|---|
| Uhrquelle | Abtastfrequenzsteuerung | x | x | x | |
| Uhrauswahl | Uhrenauswahlsteuerung | x | |||
| Taktmultiplizierer | Zählersteuerung | x | |||
| Nennersteuerung | x | ||||
| Endgerät | Verbinder-Steuerelement | x | x | ||
| Mischpult | Mixer-Steuerelement | x | x | x | |
| Selektoreinheit | Auswahlsteuerelement | x | x | ||
| Featureeinheit | Steuerelement stummschalten | x | x | x | |
| Lautstärkeregler | x | x | x | x | |
| Automatische Verstärkungskontrolle | x | x | |||
| Effekteinheit | – | ||||
| Verarbeitungseinheit | – | ||||
| Erweiterungseinheit | – |
Weitere Informationen zu den Steuerelementen und Anforderungen finden Sie in den folgenden Abschnitten.
Taktquellenentität
Ausführliche Informationen zu dieser Spezifikation finden Sie unter ADC-2 5.2.5.1.
Mindestens eine Clock Source-Entität muss Sampling Frequency Control GET RANGE und GET CUR-Anforderungen (ADC-2 5.2.5.1.1) in kompatibler USB Audio 2.0-Hardware implementieren.
Die GET RANGE-Anforderung für die Samplinghäufigkeitskontrolle gibt eine Liste von Unterbereichen zurück (ADC-2 5.2.1). Jeder Unterbereich beschreibt eine diskrete Häufigkeit oder einen Frequenzbereich. Eine diskrete Samplinghäufigkeit muss durch Festlegen von MIN- und MAX-Feldern auf die jeweilige Häufigkeit und RES auf Null ausgedrückt werden. Einzelne Unterbereiche dürfen sich nicht überlappen. Wenn sich ein Unterbereich mit einem vorherigen überlappt, ignoriert der Treiber ihn.
Eine Clock Source-Entität, die nur eine einzelne feste Häufigkeit implementiert, muss sampling Frequency Control SET CUR nicht implementieren. Es implementiert GET CUR, der die feste Häufigkeit zurückgibt. Außerdem wird GET RANGE implementiert, das eine einzelne diskrete Frequenz meldet.
Uhrauswahlentität
Ausführliche Informationen zu dieser Spezifikation finden Sie unter ADC-2 5.2.5.2.
Der USB Audio 2.0-Treiber unterstützt keine Taktauswahl. Der Treiber verwendet die Clock Source Entity, die standardmäßig ausgewählt ist und niemals eine SET CUR-Anforderung für die Clock Selector Control ausgibt. Die Clock Selector Control Get CUR-Anforderung (ADC-2 5.2.5.2.1) muss in kompatibler USB Audio 2.0-Hardware implementiert werden.
Funktionseinheit
Ausführliche Informationen zu dieser Spezifikation finden Sie unter ADC-2 5.2.5.7.
Der Treiber unterstützt nur einen einzigen Lautstärkebereich. Wenn die GET RANGE-Anforderung der Lautstärkesteuerung mehr als einen Bereich zurückgibt, ignoriert der Treiber nachfolgende Bereiche.
Das durch die Felder MIN und MAX ausgedrückte Volumenintervall sollte ein ganzzahliges Vielfaches der Schrittgröße sein, die im RES-Feld angegeben ist.
Wenn eine Featureeinheit Steuerelemente für einzelne Kanäle und ein primäres Steuerelement für "Stummschalten" oder "Lautstärke" implementiert, verwendet der Treiber die Steuerelemente für einzelne Kanäle und ignoriert das primäre Steuerelement.
Zusätzliche Informationen für Hardwarehersteller
Hardwarehersteller sollten ihre vorhandenen und neuen Geräte mit dem bereitgestellten In-Box-Treiber testen.
Es gibt keine spezifischen Partneranpassungen, die dem mitgelieferten USB-Audio 2.0-Treiber zugeordnet sind.
Dieser INF-Dateieintrag, der in einem Update auf Windows Release 1703 bereitgestellt wird, wird verwendet, um zu ermitteln, dass der In-Box-Treiber ein generischer Gerätetreiber ist.
GenericDriverInstalled,,,,1
Der In-Box-Treiber registriert sich für die folgenden kompatiblen IDs mit 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
Weitere Informationen finden Sie in der USB-Audio 2.0-Spezifikation für Unterklassentypen.
USB Audio 2.0-Geräte mit MIDI (Unterklasse 0x03) führen die MIDI-Funktion als separates Mehrfachfunktionsgerät auf, wobei der Treiber für USB Audio 1.0, usbaudio.sys, geladen wird.
Der USB Audio 1.0-Klassentreiber registriert diese kompatible ID mit wdma_usb.inf.
USB\Class_01
Und hat diese Ausschlüsse:
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
Aufgrund einer Einschränkung des Windows-Audiostapels werden eine beliebige Anzahl von Kanälen, die größer als acht sind, nicht im gemeinsam genutzten Modus unterstützt.
IHV USB Audio 2.0-Treiber und -Updates
Für von IHV bereitgestellte USB-Audio-2.0-Treiber werden diese Treiber weiterhin ihren Geräten dem Microsoft-In-Box-Treiber vorgezogen, außer wenn sie ihren Treiber aktualisieren, um dieses Verhalten explizit zu überschreiben und den In-Box-Treiber zu verwenden.
Beschreibungen des Audiobuchsen-Registers
Ab Windows 10 Release 1703 verfügen IHVs, die USB-Geräte der Audioklasse 2.0 erstellen, auf denen mindestens eine Buchse vorhanden ist, die Möglichkeit, diese Buchsen für den mitgelieferten Audioklasse 2.0-Treiber zu beschreiben. Der mitgelieferte Treiber verwendet die bereitgestellten Buchseninformationen beim Behandeln der KSPROPERTY_JACK_DESCRIPTION für dieses Gerät.
Jack-Informationen werden in der Registrierung im Geräteinstanzschlüssel (HW-Schlüssel) gespeichert.
In der folgenden Liste werden die Informationen zu den Einstellungen der Audiobuchse in der Registrierung beschrieben:
REG_DWORD T<tid>_NrJacks # of the jack on this device
REG_DWORD T<tid>_J<n>_ChannelMapping Channel mask. The value is defined in ksmedia.h. e.g. SPEAKER_FRONT_RIGHT or KSAUDIO_SPEAKER_5POINT1_SURROUND
REG_DWORD T<tid>_J<n>_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<n>_Color The color needs to be represent by RGB like this: 0x00RRGGBB (NOT a COLORREF).
- <tid> = Terminal-ID, wie im Deskriptor definiert
- <n> = Jack-Nummer (1 ~ n)
Konvention für <"tid> " und <"n> " lautet:
- Basis 10 (8, 9, 10 statt 8, 9, a)
- Keine führenden Nullen
- n ist 1-basiert (erster Jack ist Jack 1 und nicht Jack 0)
Beispiel: T1_NrJacks, T1_J2_ChannelMapping, T1_J2_ConnectorType
Weitere Informationen zum Audioanschluss finden Sie unter der Struktur KSJACK_DESCRIPTION.
Diese Registrierungswerte können auf verschiedene Arten festgelegt werden:
- Mithilfe von benutzerdefinierten INFs, die den in-Box-INF umschließen, um diese Werte festzulegen.
- Direkt vom Hardwaregerät mithilfe eines Microsoft OS Descriptors für USB-Geräte, wie im Beispiel im nächsten Abschnitt gezeigt. Weitere Informationen finden Sie unter Microsoft OS Descriptors für USB-Geräte.
Microsoft OS-Deskriptoren für USB-Beispiel
Die folgenden Microsoft OS-Deskriptoren für ein USB-Beispiel enthalten die Kanalzuordnung und die Farbgebung für eine Buchse. Das Beispiel ist für ein nicht kompositees Gerät mit einem einzelnen Featuredeskriptor.
Der IHV-Anbieter sollte es erweitern, um weitere Informationen für die Jack-Beschreibung zu enthalten.
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 future 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, // Property 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 2.0 Registry Value Feature 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, // Property 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 – 4 bytes
0x00, 0x00, 0xff, 0x00 // PropertyData - 0xff0000 - RED }
Problembehandlung
Wenn der Treiber nicht gestartet wird, überprüfen Sie das Systemereignisprotokoll. Die Treiberprotokolle können den Grund für den Fehler angeben. Sie können Protokolle manuell erfassen, wie in Sammeln von Audioprotokollen auf die altmodische Weise beschrieben. Wenn der Fehler möglicherweise auf ein Treiberproblem hinweist, melden Sie es mithilfe des hier beschriebenen Feedback-Hubs, und schließen Sie die Protokolle ein.
Informationen zum Lesen von Protokollen für den USB Audio 2.0-Klassentreiber mithilfe zusätzlicher TMF-Dateien finden Sie unter "Melden von Problemen" mit Protokollen und Vorschlägen von Features mit dem Feedback-Hub. Allgemeine Informationen zum Arbeiten mit TMF-Dateien finden Sie unter Anzeigen eines Ablaufverfolgungsprotokolls mit einer TMF-Datei.
Informationen zu Audiodiensten, die nicht reagieren und das USB-Audiogerät in Windows 10, Version 1703, nicht funktioniert, finden Sie unter USB-Audio nicht wiedergegeben.
Feedback-Hub
Wenn bei diesem Treiber ein Problem auftritt, sammeln Sie Audioprotokolle, und führen Sie dann die in " Probleme melden" beschriebenen Schritte mit Protokollen und Vorschlagen von Features mit dem Feedback-Hub aus.
Treiberentwicklung
Thesycon hat diesen USB Audio 2.0-Klassentreiber entwickelt. Microsoft unterstützt es.