Freigeben über


Standardmäßige Audioendpunktauswahl ab Windows 10

Das Windows 10-Audiosubsystem verwendet einen Algorithmus mit erweiterter Heuristik für die Standardmäßige Auswahl von Audioendpunkten. In diesem Thema werden diese Heuristiken und die Verwendung des Windows 10-Audiosubsystems zum Auswählen des Standardmäßigen Audioendpunkts beschrieben. Damit Sie den neuen Windows 10-Auswahlmechanismus am besten verstehen können, wird in diesem Thema auch erläutert, wie die Standardmäßige Auswahl von Audioendpunkten in Windows 7 erfolgt. Die Zielgruppe dieses Themas ist OEMs und IHVs.

Diese Informationen gelten für das Windows 10-Betriebssystem.

Referenzen und Ressourcen, die hier genannt werden, sind am Ende des Themas aufgeführt.

Einführung

Die meisten PC-Audiogeräte enthalten mehrere logisch unabhängige Audiofunktionen. In Windows 7 und Windows 10 wird jedes Feature als separater Audioendpunkt verfügbar gemacht. Endpunkte werden in der Systemsteuerung Soundanwendung aufgeführt, wie im folgenden Beispieldialogfeld von Windows 7 gezeigt.

Screenshot des Dialogfelds Systemsteuerung Soundanwendung in Windows 7.

Und auf der seite mit den neuen Soundeinstellungen, die in Windows 10 verfügbar ist.

Screenshot der Seite

Für eine bestimmte Konsole oder Kommunikationsrolle kann jeweils nur ein Audioendpunkt als Standard festgelegt werden. Ab Windows 10 gibt es jedoch die Möglichkeit, einen anderen Endpunkt für diese Rollen auf verschiedene Anwendungen zu richten, die das App-Volume und die Geräteeinstellungen verwenden.

Screenshot der Seite

Die Windows 7- und Windows 10-Audiosubsysteme verwenden ähnliche Algorithmen, um den Standardaudioendpunkt zu bestimmen, wenn keine Benutzereinstellung angegeben wurde. Der Windows 10-Algorithmus unterscheidet sich jedoch von Windows 7 in der Weise, wie er die Benutzerauswahl des Standardwerts behandelt und eine Einstellung pro Anwendung behandelt.

In diesem Thema wird beschrieben, wie der Standardmäßige Audioendpunkt in Windows 10 ausgewählt wird. Um besser zu verstehen, was für Windows 10 neu ist, wird auch die Standardmäßige Auswahl des Audioendpunkts in Windows 7 erläutert.

Standardalgorithmus für die Auswahl des Standardaudiodpunkts

Die Windows 7- und Windows 10-Audiosubsysteme verwenden einen ähnlichen Algorithmus, um den Standardaudioendpunkt zu ermitteln. Der Algorithmus funktioniert wie folgt:

  • Durchlaufen Sie alle ACTIVE-Endpunkte, um einen Endpunkt zu finden, der vom Benutzer für diese Anwendung als bevorzugte Standardeinstellung festgelegt ist (neu für Windows 10)
    • Wenn ein Endpunkt identifiziert wird, wird er zurückgegeben und der Prozess abgeschlossen.
  • Wenn kein Endpunkt identifiziert wurde, durchlaufen Sie alle ACTIVE-Endpunkte, um einen Endpunkt zu finden, der vom Benutzer für das System als bevorzugte Standardeinstellung festgelegt ist (Auswahl für Windows 10 geändert).
    • Wenn ein Endpunkt identifiziert wird, wird er zurückgegeben und der Prozess abgeschlossen.
  • Wenn kein Endpunkt identifiziert wurde, durchlaufen Sie alle ACTIVE-Endpunkte, um den Endpunkt mit der höchsten "rang"-Eigenschaft für die angeforderte Rolle zu finden, und hat keinen Nie als Standard-PKEY_AudioDevice_NeverSetAsDefaultEndpoint Eigenschaftensatz festgelegt. (Rangfolgengewichtungswerte, die für Windows 10 geändert wurden).
    • Wenn ein Endpunkt identifiziert wird, wird er zurückgegeben und der Prozess abgeschlossen.
  • Wenn kein Endpunkt identifiziert wird, schlägt die Anforderung fehl, die E_NOTFOUND angibt.

Es gibt vier Endpunktzustände: ACTIVE, UNPLUGGED, DISABLED und NOT PRESENT, die in DEVICE_STATE_XXX Konstanten definiert sind. Das Audiosubsystem betrachtet nur ACTIVE-Endpunkte (im aktuellen und aktivierten Zustand), wenn er den Standardaudioendpunkt bestimmt. Alle Ereignisse, die dazu führen, dass sich der Status eines Endpunkts von oder zum ACTIVE-Zustand ändert, kann sich potenziell auf den aktuellen Standardaudioendpunkt auswirken. Zu diesen Ereignissen gehören das Einfügen eines Audiogeräts, das Trennen eines Geräts und die Installation eines neuen Audiogeräts. Als Reaktion auf solche Vorgänge führt das Windows-Audiosubsystem den heuristischen Standardalgorithmus des Audioendpunkts aus, um den neuen Standardaudioendpunkt zu ermitteln.

Die Endpoint Timestamp-Eigenschaft in Windows 7

Die Zeitstempeleigenschaft des Endpunkts ist ein Eigenschaftsschlüssel, der die Systemzeit enthält. In Windows 7 wird die Timestamp-Eigenschaft eines Endpunkts erstellt oder aktualisiert, wenn er über die Systemsteuerung Soundanwendung als Standardaudioendpunkt festgelegt wird.

Screenshot der standardmäßigen Audioendpunktauswahl in Systemsteuerung Soundanwendung.

Eine Timestamp-Eigenschaft ist jeder Rolle zugeordnet, und die Timestamp-Eigenschaft wird vom Standardauswahlalgorithmus verwendet, um zu identifizieren, welche Endpunkte als bevorzugte Standardeinstellung durch den Benutzer für diese Rolle festgelegt wurden. Der Algorithmus identifiziert den Endpunkt mit der neuesten Timestamp-Eigenschaft als Standardendpunkt.

Die Level-Eigenschaft in Windows 10

Die Timestamp-Eigenschaft, die in Windows 7 für die Standardeinstellung des Benutzers verwendet wurde, lässt die automatische Auswahl eines neu angefügten Geräts nach der anfänglichen Standardauswahl nicht zu. Wenn ein Benutzer beispielsweise den internen Lautsprecher jederzeit als Standardendpunkt in der Vergangenheit und später angeschlossenen neuen USB-Kopfhörern festgelegt hat, würde das System nie ohne manuelle Auswahl auf die USB-Kopfhörer wechseln.

Ab Windows 10 wird die Standardauswahl des Benutzers als strukturähnliche Struktur früherer Einstellungen erstellt, die berücksichtigt, welche Endpunkte zum Zeitpunkt der Vom Benutzer vorgenommenen Standardauswahl verfügbar waren. Der Grund dafür ist, dass ein Benutzer, wenn ein Benutzer einen Standardendpunkt auswählt, seine Einstellung für diesen Endpunkt relativ zu den anderen Endpunkten kommuniziert, die zum Zeitpunkt der Auswahl aktiv waren. Der Benutzer kommuniziert keine absolute Vorliebe für das ausgewählte Gerät für immer und in allen Situationen.

Die Verwendung und Erstellung der Timestamp-Eigenschaft wurde aus Windows 10 entfernt, ersetzt durch die Level-Eigenschaft. Die Leveleigenschaft wird verwendet, um die strukturähnliche Struktur von Benutzereinstellungen zu erstellen. Wie bei der Timestamp-Eigenschaft gibt es eine Leveleigenschaft, die jeder Rolle zugeordnet ist. Die Level-Eigenschaft wird jedes Mal erstellt oder aktualisiert, wenn der Benutzer einen Standardendpunkt auswählt, obwohl die Soundsteuerung, die Seite mit den Soundeinstellungen oder das Audiosteuerelement in der Taskleiste angezeigt wird.

Der Standardzuordnungsalgorithmus funktioniert wie folgt:

Wenn ein Endpunkt als Standard ausgewählt wird, wird dieser Endpunkt an den Anfang der strukturähnlichen Struktur verschoben, indem er ihm die höchste verfügbare Ebene zuweist. Die nächste Ebene unten in der Struktur würde einen oder mehrere Endpunkte enthalten, die entweder in der Vergangenheit als Standard ausgewählt wurden oder zum Zeitpunkt dieser Auswahl aktiv waren, aber noch nie vom Benutzer ausgewählt wurden. Jede nachfolgende Auswahl bringt den gewünschten Endpunkt an den Anfang der Liste, verschiebt vorherige Auswahl nach unten und gruppiert aktiv, aber noch nicht ausgewählte Endpunkte zusammen, um Verknüpfungsbedingungen zu erstellen. Wenn alle Endpunkte im System standardmäßig festgelegt werden, wird die resultierende Struktur zu einer einfachen sortierten Liste mit einem Endpunkt auf jeder Ebene.

Der Standardermittlungsalgorithmus funktioniert wie folgt:

Zuerst werden aktive Endpunkte ohne Einen Levelwert rangiert, wobei der Endpunkt mit der höchsten Rangfolge, die als Standard ausgewählt ist, verglichen wird. Auf diese Weise erhalten Endpunkte, die kürzlich hinzugefügt wurden, eine erste Möglichkeit, die Standardeinstellung zu sein, da sie die neueste im System sind und verbunden sind, nachdem der Benutzer die vorherige Standardeinstellung ausgewählt hat.

Wenn alle aktiven Endpunkte eine Ebene enthalten, wird der Endpunkt mit der höchsten Ebene ohne Bindung als Standard ausgewählt. Die höchste Ebene gibt an, dass der Benutzer an einem bestimmten Punkt in der Vergangenheit diesen Endpunkt als Standard festgelegt hat, während die anderen Endpunkte mit einem niedrigeren Levelwert aktiv waren.

Wenn alle Endpunkte einen Levelwert enthalten und die Endpunkte mit den höchsten Ebenenwerten alle gebunden sind, wird der Endpunktrang dann verwendet, um die Verknüpfung zu unterbrechen. Dies gibt an, dass diese Endpunkte zum Zeitpunkt einer Standardauswahl aktiv waren, aber nicht selbst ausgewählt wurden. Wir haben keinen Hinweis auf die Benutzerpräferenz zwischen diesen Endpunkten, sodass das automatisierte Bewertungssystem verwendet wird.

Es lohnt sich zu beachten, dass mit diesem neuen Algorithmus ein "neuer" Endpunkt eine höhere Gewichtung erhält, um die Standardeinstellung zu werden. Dies bedeutet, dass das Treiberverhalten, das dazu führt, dass ein Audioendpunkt in einem System neu erscheint, das Potenzial hat, eine Standardänderung auszulösen.

Beispiele für Treiberverhalten und Ereignisse, die zu einem Verlust von Benutzereinstellungen auf Audioendpunkten führen und einen Audioendpunkt für das System "neu" erscheinen lassen, was möglicherweise eine Änderung des Standardgeräts auslöst, sind:

  • Installieren eines anderen Treibers. Wechseln Sie z. B. zwischen dem HDAudio-Klassentreiber und dem entsprechenden Drittanbietertreiber für die Hardware. Dies wird erwartet und beabsichtigt, da die Benutzereinstellungen und verfügbaren Endpunkte zwischen zwei oder mehr nicht verknüpften Treiberinstallationen nicht identisch sind.
  • Deinstallieren und erneutes Installieren des Treibers. Durch die Deinstallation des Audiotreibers löscht AudioEndpointBuilder die dem Treiber zugeordneten Benutzereinstellungen. Die Installation eines neuen Treibers bewirkt, dass AudioEndpointBuilder neue Audioendpunkte erstellt. Dies wird erwartet, und zwar im Design, dieses Verhalten sollte jedoch von automatisierten Installationsprogrammen vermieden werden, wenn es zu einem unerwarteten Verlust von Benutzereinstellungen führt.
  • Änderungen an der Referenzzeichenfolge oder pin-ID des Audioendpunktfilters. Audioendpunkte werden durch die an PnP übergebene Referenzzeichenfolge identifiziert, wenn die KS-Schnittstelle erstellt wurde, zusammen mit der Pin-ID für den externen Connector. Wenn Sie diese Werte ändern, wird ein neuer Audioendpunkt erstellt. Dieser neue Audioendpunkt enthält nicht die Benutzereinstellungen, die der vorherigen Referenzzeichenfolge und der Pin-ID des Connectors zugeordnet sind. Referenzzeichenfolgen und Pin-IDs des Verbinders dürfen sich nicht für die Lebensdauer der Treiberinstallation ändern, einschließlich treiberübergreifender Updates.
  • Ein HDMI- oder Anzeigeaudiogerät, das den Terminaltyp oder die Senken-ID ändert. Der Terminaltyp und die Sink-ID werden voraussichtlich geändert, wenn der Benutzer eine andere Anzeige an das System anfügt, eine andere Anzeige ist ein neuer Endpunkt mit neuen Benutzereinstellungen, die ihr zugeordnet sind. Das Ändern dieser Werte, wenn keine entsprechende Änderung an der angefügten Anzeige vorhanden ist, wird jedoch als Verlust der Benutzereinstellungen wahrgenommen. Die Senken-ID und der Terminaltyp müssen für die angefügte Anzeige erneut Standard Konstante sein.

Die Heuristik des Windows 10-Standardaudioendpunkts

Die Heuristik des Windows 10-Standardaudioendpunkts für die automatische Endpunktauswahl ist identisch mit der Windows 7-Heuristik, mit einigen geringfügigen Änderungen an den Faktorgewichtungen, um eine bessere Benutzererfahrung zu erzielen.

Die Heuristik der Standardauswahl beginnt mit dem Sammeln von Informationen zum Audioendpunkt. die Faktoren. Jeder Faktor wird dann gewichtet, und die resultierenden gewichteten Werte für alle Faktoren werden addiert. Die resultierende Summe wird als Endpunktrang bezeichnet. Ein Rangwert wird für jede Rolle für jeden Endpunkt (Konsole und Kommunikation) berechnet.

Der Endpunkt mit dem höchsten Rang wird dann als Standard für die angeforderte Rolle ausgewählt.

Heuristische Windows 10-Faktoren

Das Windows 10-Audiosubsystem berücksichtigt die folgenden Endpunktmerkmale oder Faktoren, um den Standardaudioendpunkt auszuwählen:

Windows 10 definiert eine Reihe von Enumerationswerten für jeden unterstützten Endpunktfaktor und speichert sie in der Registrierung. Detaillierte Beschreibungen dieser Faktoren und der entsprechenden Enumerationswertsätze folgen.

Jack-Erkennungsfunktion

Ein Endpunkt mit dieser Funktion impliziert, dass Audiotreiber das Audiosubsystem benachrichtigen können, wenn das mit einem Endpunkt verbundene Audiogerät angeschlossen ist oder nicht angeschlossen ist. Audioendpunkte, die die Erkennungsfunktion der Jacken unterstützen, werden als dynamische Endpunkte bezeichnet, und solche, die diese Unterstützung nicht bereitstellen, werden als statische Endpunkte bezeichnet. Um die Erkennungsfunktion der Jacken zu unterstützen, müssen Audiogerätetreiber die KSPROPERTY_JACK_DESCRIPTION2-Eigenschaft unterstützen. Weitere Informationen zu dieser Eigenschaft finden Sie unter KSPROPERTY_JACK_DESCRIPTION2.

Enumerationswerte der Jack-Erkennungsfunktion
Unterstützt
NotSupported

Die Heuristik des Windows 10-Standardaudiogeräts behandelt alle USB-Audioendpunkte und Bluetooth-Audioendpunkte als Buchsenerkennungsfähig.

Formfaktor

Der Formfaktor eines Audioendpunkts gibt die physischen Attribute des Audioendpunkts an, mit dem der Benutzer interagiert, z. B. Kopfhörer, Lautsprecher oder S/PDIF. Um den Formfaktor eines Endpunkts zu ermitteln, verwendet das Audiosubsystem integrierte feste Logik, um die Kategorie des Kernelstreamings (KSNodeType), die vom Audiotreiber verfügbar gemacht wird, einem bestimmten Formfaktor zuzuordnen. Weitere Informationen finden Sie unter EndpointFormFactor.

Enumerationswerte des Endpunktformfaktors
RemoteNetworkDevice
Speakers
LineLevel
Kopfhörer
Mikrofon
Headset
Mobilteil
UnknownDigitalPassthrough
SPDIF
DigitalAudioDisplayDevice
UnknownFormFactor

KSNodeType

Der Audiotreiber wählt den KSNodeType für einen KS-Pin auf einem Endpunkt aus, da der Treiber detaillierte Kenntnisse über das Audiogerät hat, das möglicherweise mit einer Audiobuchse verbunden ist. Daher zeigt KsNodeType spezifischere Kenntnisse über den Endpunkt an, als dessen Formfaktor es tut.

KSNodeType-Enumerationswerte
KSNODETYPE_SPEAKER
KSNODETYPE_MICROPHONE_ARRAY
KSNODETYPE_HEADPHONES

Ausführlichere Informationen zu KsNodeType finden Sie unter Pin Category Property.

Bustypen

Dieser Faktor stellt den Bustyp dar, von dem das Audiogerät, das die Audioendpunkte verfügbar gemacht hat, aufgezählt wurde.

Enumerationswerte des Bustyps
BTHENUM
BTHHFENUM
USB
HDAUDIO
PCI
Unbekannt

Das Audiosubsystem bevorzugt Endpunkte für einen bestimmten Bustyp gegenüber anderen Bustypen, wenn alle anderen Endpunktmerkmale identisch sind. So hat das System beispielsweise Bluetooth-Kopfhörer Vorrang vor hd-Audio-Kopfhörern an Bord, um eine bessere Kommunikationserfahrung für den Benutzer zu bieten; Das heißt, wenn ein Endbenutzer ein Bluetooth-Kopfhörergerät auf diesen PC einführt, macht es das System zum Standardgerät.

Allgemeiner Speicherort

Der allgemeine Standort gibt den physischen Bruttospeicherort der Buchse oder des Geräts an, mit dem der Audioendpunkt verbunden ist.

Allgemeine Standort-Enumerationswerte
PrimaryBox (auf dem primären System-Chassis, für den Benutzer zugänglich)
Intern (auf der Hauptplatine, nicht zugänglich, ohne die Box zu öffnen)
Getrennt (z. B. eine mobile Box)
Andere

Geometrische Position

Geometrische Position gibt die geometrische Position der Buchse oder des Geräts an, mit der der Audioendpunkt verbunden ist.

Geometrische Positions-Enumerationswerte
eGeoLocRear
eGeoLocFront
eGeoLocLeft
eGeoLocRight
eGeoLocTop
eGeoLocBottom
eGeoLocRearOPanel
eGeoLocRiser

UntertypSpecific

Die untertypspezifische Eigenschaft ermöglicht zukünftige Erweiterungen eines heuristischen Werts, der von der Pinkategorieeigenschaft des Endpunkts abhängig ist. Es ermöglicht eine unterstützte/NichtSupported-Funktion.

Enumerationswerte der SubtypeSpecific-Funktion
Unterstützt
NotSupported

Derzeit bezieht sich die einzige subtypspezifische Eigenschaft auf die Mikrofonarraygeometrie. Im Kontext der Mikrofonarraygeometrie bedeutet "Supported" die Geometrie "Front/Back". "NotSupported" gibt eine andere Geometrie an. Wenn mehr als ein Mikrofonarray vorhanden ist, kann eine Voreinstellung für die Front-/Back-Geometrie verwendet werden.

Windows 10 Heuristik-Details

Der Standardmäßige Audioendpunkt-Heuristik von Windows 10 gewichtet jeden Endpunktfaktor. Je höher die Priorität eines Faktors ist, desto größer ist die Gewichtung. In diesem Thema werden WeightFactor_Xxx verwendet, um die Priorität eines Faktors zu identifizieren.

Darüber hinaus weist die Windows 10-Heuristik jedem Enumerationswert in einer Faktorkategorie einen Rangwert (nRankXxx in diesem Thema) zu. Dieser Rangwert legt die relative Wichtigkeit unter allen Enumerationswerten unter demselben Faktor fest.

Diese WeightFactor_Xxx - und nRankXxx-Werte werden von Windows in der Registrierung während der Betriebssysteminstallation gespeichert. Der Satz von Parametern für die Bewertungsberechnung der Heuristik hängt von den Merkmalen des Endpunkts ab. Die folgende Tabelle zeigt einen Beispielsatz von Parametern.

Gewichtung des Endpunktfaktors Rangwert des Endpunktfaktors
WeightFactor_JackDet nRankJackDet
WeightFactor_SubType nRankSubType
WeightFactor_FormFactor nRankFormFactor
WeightFactor_BusType nRankBusType
WeightFactor_GenLoc nRankGenLoc
WeightFactor_GeoLoc nRankGeoLoc
WeightFactor_SubtypeSpecific nRankSubtypeSpecific

Das Audiosubsystem berechnet den gewichteten Rang eines Endpunkts über alle faktoren hinweg, wie folgt:

WeightedRankValue =

WeightFactor_JackDet * nRankJackDet +

WeightFactor_SubType * nRankSubType +

WeightFactor_FormFactor * nRankFormFactor +

WeightFactor_BusType * nRankBusType +

WeightFactor_GenLoc * nRankGenLoc +

WeightFactor_GeoLoc * nRankGeoLoc |

WeightFactor_SubtypeSpecific * nRankSubtypeSpecific.

Das Audiosubsystem berechnet den gewichteten Rangwert für alle aktiven Endpunkte und wählt den Endpunkt aus, der den höchsten Rang als Standardaudioendpunkt hat.

Der Heuristikmechanismus für die Standardmäßige Audioendpunktauswahl von Windows 10 unterstützt auch ein Ausnahmefeature. Mit dieser Funktion kann das System oder ein OEM dazu führen, dass das Audiosubsystem einen Endpunkt angibt, der einem bestimmten Satz von Merkmalen mit sehr hohen oder sehr niedrigen Gewichtungswerten entspricht. Solche Bezeichnungen machen die Heuristik des Systems flexibler, wenn es mit unerwarteten Szenarien umgeht.

Die Heuristiken für die Konsolengeräterolle und die Rolle des Kommunikationsgeräts sind getrennt, aber der Mechanismus ist genau identisch, mit unterschiedlicher Reihenfolge für die Faktoren, die auf Rollen basieren.

Windows 10 Inbox Heuristic Einstellungen

Windows 10 enthält Einstellungen, die auf den heuristischen Details in diesem Thema basieren. Der Standardmäßige Konsolenaudioendpunkt und der Standardmäßige Kommunikationsaudioendpunkt haben unterschiedliche Einstellungen. In diesem Abschnitt werden die Einstellungen für beide Endpunkttypen beschrieben.

Heuristische Einstellungen des Posteingangs für den Standardmäßigen Konsolenaudioendpunkt

In diesem Abschnitt werden die standardmäßigen heuristischen Einstellungen für jeden Faktor für einen Konsolenaudioendpunkt beschrieben. Die Faktoren werden in der Prioritätsreihenfolge aufgeführt; d. h., Windows 10 hat höchste Priorität für den ersten Faktor in der folgenden Liste, wenn das Audiosubsystem den Standardkonsolenendpunkt bestimmt.

Jack-Erkennungsfunktion

Endpunkte mit Jack-Erkennungsfunktion bieten dem System die aktuellsten Informationen darüber, ob ein Audioperipheriegerät physisch an das System angeschlossen ist und wann es angeschlossen oder nicht angeschlossen ist. Diese Informationen helfen dabei, eine bessere Endbenutzerumgebung zu schaffen, sodass Windows 10 diesen Faktor als höchsten Prioritätsfaktor festlegt. Ein Endpunkt mit Jack-Erkennungsfunktion hat eine höhere Priorität als Endpunkte ohne diese Funktion, unabhängig davon, wie andere Faktoren verglichen werden.

Formularfaktor

Windows 10 verwendet eine andere Reihenfolge der Formfaktorpriorität als Windows 7, die Werte wurden basierend auf Benutzerfeedback und Studien angepasst.

Windows 10 legt die Priorität des Formfaktors für Renderkonsolenendpunkte in der folgenden Prioritätsreihenfolge fest:

  • Kopfhörer und Headsets
  • Speakers
  • LineLevel
  • DigitalAudioDisplayDevice
  • S/PDIF
  • Alles andere (behandelt mit der gleichen niedrigsten Priorität; d. r. with_nRankFormFactor_ gleich Null)

Windows 10 legt die Priorität des Formfaktors für die Erfassung von Konsolenendpunkten in der folgenden Prioritätsreihenfolge fest:

  • Headset
  • Mikrofon
  • LineLevel
  • Alles andere (behandelt mit der gleichen niedrigsten Priorität; d. r. mit nRankFormFactor gleich Null)

Betrachten Sie z. B. ein System mit drei Audiokonsolen-Renderendpunkten:

  • Ein STATISCHEr HD-Kopfhörerendpunkt (ein Kopfhörer ohne Buchse-Erkennungsfunktion).
  • Ein statischer S/PDIF Out-Endpunkt.
  • Ein Endpunkt für dynamische Lautsprecher (Lautsprecher mit Unterstützung der Jack-Erkennung).

Das Audiosubsystem verwendet die Heuristik des Windows 10-Systems und wählt den Endpunkt dynamischer Lautsprecher als Standard-Konsolenrender-Audioendpunkt aus, obwohl der Formfaktor der Lautsprecher unter dem Formfaktor des Kopfhörers priorisiert wird. Der Lautsprecherendpunkt wird ausgewählt, da es die Jack-Erkennung ermöglicht, die eine höhere Priorität gegenüber dem Formfaktor hat, während die Kopfhörer diese Funktion nicht haben.

Wenn ein dynamischer USB-Kopfhörerendpunkt im obigen Beispiel eingeführt wird, wählt das Windows 7-Audiosubsystem diesen Endpunkt als Standard-Konsolenrenderungsendpunkt aus. Diese Wahl liegt daran, dass der Kopfhörerformfaktor eine höhere Priorität hat als der Lautsprecherformfaktor, wenn beide Geräte die Jackenerkennung unterstützen.

KSNodeType

Wie zuvor Erwähnung, bietet KSNodeType detailliertere Informationen als die durch formfaktor für ein Audiogerät, das mit einem Endpunkt verbunden ist. Windows 10 definiert drei mikrofonbezogene KSNodeTypes, um Endpunkte mit dem Mikrofonformfaktor, aber unterschiedlichen KSNodeType weiter zu priorisieren. Sie werden wie folgt in Prioritätsreihenfolge bewertet:

  • KSNODETYPE_PROCESSING_MICROPHONE_ARRAY
  • KSNODETYPE_MICROPHONE_ARRAY
  • KSNODETYPE_OMNI_DIRECTIONAL_MICROPHONE
  • Alles andere (behandelt mit der gleichen niedrigsten Priorität; das heißt, mit nRankSubType gleich Null)

Betrachten Sie z. B. ein System mit zwei Audioaufnahmeendpunkten:

  • Ein integrierter statischer Mikrofonarrayendpunkt mit KSNODETYPE_MICROPHONE_ARRAY.
  • Ein statischer Mikrofonendpunkt mit KSNODETYPE_MICROPHONE.

Wenn das Audiosubsystem die Systemhuristik zum Auswählen des Standardmäßigen Endpunkts für die Konsolenaufnahme verwendet, wählt es den Mikrofonarrayendpunkt aus. Das Mikrofonarray ist ausgewählt, da beide Endpunkte zwar die gleiche Jackenerkennungsfunktion und den gleichen Formfaktor aufweisen, der KsNodeType des Mikrofons jedoch höher priorisiert wird als der des Mikrofons. Das heißt, KSNODETYPE_MICROPHONE_ARRAY wird höher als KSNODETYPE_MICROPHONE priorisiert, was nicht aufgeführt ist und in die Kategorie "alles andere" fällt.

Weitere Informationen zu KsNodeType finden Sie unter Pin Category Property.

Bustypen

Windows 10 bewertet die Enumerationswerte für Endpunktbustypen in der folgenden Prioritätsreihenfolge von der höchsten bis zur niedrigsten Priorität:

  • USB
  • HDAudio und UnknownBusType (in der Regel ein SOC-System)
  • PCI
  • BTHENUM
  • BTHHFENUM
  • Andere (behandelt mit der gleichen niedrigsten Priorität; das heißt, mit nRankBusType gleich Null)

Allgemeiner Speicherort

Windows 10 bewertet die Enumerationswerte für den allgemeinen Standort in der folgenden Prioritätsreihenfolge von der höchsten bis zur niedrigsten Priorität:

  • PrimaryBox und Intern
  • Andere (behandelt mit der gleichen niedrigsten Priorität; d. r. nRankGenLoc ist gleich Null)

Audiotreiber melden die allgemeinen Standortinformationen ihrer Endpunkte über die eigenschaft KSPROPERTY_JACK_DESCRIPTION . Weitere Informationen finden Sie unter Jack Description-Eigenschaft.

Geometrische Position

Windows 10 bewertet die Enumerationswerte für die geometrische Position in der folgenden Prioritätsreihenfolge, von der höchsten bis zur niedrigsten Priorität:

  • Front- und InsideMobileLid
  • Unten, links, AußenmobileLid, hinten, rechts und oben
  • RearPanel
  • Andere (behandelt mit der gleichen niedrigsten Priorität; das heißt, mit nRankGeoLoc gleich Null)

Audiotreiber melden die geometrischen Standortinformationen ihrer Endpunkte über die KSPROPERTY_JACK_DESCRIPTION-Eigenschaft . Weitere Informationen finden Sie unter Jack Description-Eigenschaft.

Ausnahmen

Neben den vorherigen heuristischen Faktoren verfügt Windows 10 über 3 Ausnahmen für die Heuristik des Standardkonsolengeräts. Windows 7 hatte nur eine Ausnahme.

Die erste Ausnahme, die sowohl in Windows 7 als auch in 10 vorhanden ist, verhindert offensichtliche kommunikationsorientierte Endpunkte , z. B. Handset und Lautsprecher, werden als Standardkonsolenendpunkt ausgewählt. Das Audiosubsystem downgradet insbesondere das WeightedRankValue-Ergebnis für Endpunkte mit einem der folgenden KSNodeType-Werte:

  • KSNODETYPE_SPEAKER_AND_HEADSET
  • KSNODETYPE_SPEAKERS_STATIC_JACK
  • KSNODETYPE_HANDSET
  • KSNODETYPE_SPEAKERPHONE_NO_ECHO_REDUCTION
  • KSNODETYPE_ECHO_SUPPRESSING_SPEAKERPHONE
  • KSNODETYPE_ECHO_CANCELING_SPEAKERPHONE
  • KSNODETYPE_PHONE_LINE
  • KSNODETYPE_TELEPHONE
  • KSNODETYPE_DOWN_LINE_PHONE
  • Mobile Audio-spezifische Endpunkte, die in mobilen Szenarien vorhanden sind

Die zweite Ausnahme, die nur unter Windows 10 vorhanden ist, verhindert außerdem, dass offensichtliche kommunikationsorientierte Endpunkte als Standardkonsolenendpunkt ausgewählt werden. Im Gegensatz zur ersten Ausnahme berücksichtigt diese Ausnahme auch den Bustyp. Der Grund dafür ist, dass viele beliebte USB-Kopfhörer die folgenden KSNodeTypes verwenden, obwohl die Geräte nicht spezifisch kommunizieren. Der Windows 7-Bewertungsalgorithmus hat diese KSNodeTypes für den Standardkonsolenendpunkt für alle Bustypen herabgestuft. Für Windows 10 werden diese KSNodeTypes nur für Nicht-USB-Bustypen herabgestuft.

  • KSNODETYPE_PERSONAL_MICROPHONE
  • KSNODETYPE_COMMUNICATION_SPEAKER
  • KSNODETYPE_HEADSET

Für die dritte Ausnahme wird explizit eine Einstellung für "persönliche" Endpunkte wie Kopfhörer und Headsets eingeführt, die physisch mit einem Draht an das System angeschlossen sind. Einige Beispiele wären kabelgebundene USB-Headsets und kabelgebundene 3,5mm Kopfhörer. Im Gegensatz zu den vorherigen 2 Ausnahmen aktualisiert diese Ausnahme diese Endpunkte so, dass sie für den Standardkonsolenendpunkt bevorzugt werden. Diese Ausnahme ist neu für Windows 10 und dient zur Verbesserung der Privatsphäre des Benutzers und bevorzugt Endpunkte, die nur der Benutzer über laute Lautsprecherendpunkte hören kann, die andere hören können.

Heuristische Einstellungen für den Standardmäßigen Kommunikationsaudioendpunkt

In diesem Abschnitt werden die heuristischen Standardeinstellungen jedes Faktors für einen Kommunikationsaudioendpunkt beschrieben. Die Faktoren werden in der Prioritätsreihenfolge aufgeführt; d. h., Windows 10 hat höchste Priorität für den ersten Faktor in der folgenden Liste, wenn er den Standardkommunikationsendpunkt berechnet. Der einzige Unterschied zwischen den Heuristiken von Konsolenstandardendpunkten und Kommunikationsstandardendpunkten besteht in den Formularfaktoreinstellungen und der Ausnahmeregel.

Jack-Erkennungsfunktion

Die heuristischen Einstellungen der Jack-Erkennungsfunktion sind für Standardmäßige Kommunikationsaudioendpunkte und Standard-Konsolenaudioendpunkte identisch.

Formularfaktor

Unterschiedliche Prioritätslisten werden für Renderkommunikationsstandardgeräte erstellt und Kommunikationsstandardgeräte erfasst.

Die Formfaktorpriorität für Standardmäßige Kommunikationserfassungsendpunkte in der Prioritätsreihenfolge (von der höchsten Priorität bis zum niedrigsten) lautet wie folgt:

  • Headset
  • Mobilteil
  • Mikrofon
  • LineLevel

Die Formfaktorpriorität für standardmäßige Renderendpunkte für kommunikationen in der Prioritätsreihenfolge (von der höchsten Priorität bis zum niedrigsten) lautet wie folgt:

  • Headset
  • Mobilteil
  • Kopfhörer
  • Speakers
  • LineLevel
  • DigitalAudioDisplayDevice (HDMI oder DisplayPort)
  • S/PDIF
  • Alles andere (behandelt mit der gleichen niedrigsten Priorität; d. r. mit nRankFormFactor gleich Null)

KSNodeType

Die heuristischen KsNodeType-Einstellungen sind für standardmäßige Kommunikationsaudioendpunkte und Standardmäßige Konsolenaudioendpunkte identisch.

Bustypen

Die Heuristikeinstellungen des Bustyps sind für Standardmäßige Kommunikationsaudioendpunkte und Standard-Konsolenaudioendpunkte identisch.

Allgemeiner Speicherort

Windows 10 bewertet die Enumerationswerte für den allgemeinen Standort in der folgenden Prioritätsreihenfolge von der höchsten bis zur niedrigsten Priorität:

  • Trennen
  • PrimaryBox
  • Intern
  • Andere (behandelt mit der gleichen niedrigsten Priorität; d. r. nRankGenLoc ist gleich Null)

Audiotreiber melden die allgemeinen Standortinformationen ihrer Endpunkte über die eigenschaft KSPROPERTY_JACK_DESCRIPTION. Weitere Informationen finden Sie unter Jack Description-Eigenschaft.

Geometrische Position

Windows 10 bewertet die Enumerationswerte für die geometrische Position in der folgenden Prioritätsreihenfolge, von der höchsten bis zur niedrigsten Priorität:

  • Front- und InsideMobileLid
  • Andere (behandelt mit der gleichen niedrigsten Priorität; das heißt, mit nRankGeoLoc gleich Null)

Audiotreiber melden die geometrischen Standortinformationen ihrer Endpunkte über die KSPROPERTY_JACK_DESCRIPTION-Eigenschaft. Weitere Informationen finden Sie unter Jack Description-Eigenschaft.

Ausnahmen

Zusätzlich zu den vorherigen heuristischen Faktoren verfügt Windows 10 auch über drei Ausnahmen, die für die Heuristik des Standardkommunikationsgeräts implementiert wurden, während Windows 7 nur eine hatte.

Die erste Ausnahme bevorzugt offensichtliche kommunikationsorientierte Endpunkte , z. B. Handset und Lautsprecher, für die Auswahl als Standardkommunikationsendpunkt. Insbesondere aktualisiert das Audiosubsystem das WeightedRankValue-Ergebnis für Endpunkte mit einem KSNodeType, der einem der folgenden Werte entspricht:

  • KSNODETYPE_PERSONAL_MICROPHONE
  • KSNODETYPE_HEADSET
  • KSNODETYPE_PHONE_LINE
  • KSNODETYPE_DOWN_LINE_PHONE
  • KSNODETYPE_COMMUNICATION_SPEAKER
  • KSNODETYPE_HANDSET
  • KSNODETYPE_TELEPHONE
  • KSNODETYPE_SPEAKERPHONE_NO_ECHO_REDUCTION
  • KSNODETYPE_ECHO_SUPPRESSING_SPEAKERPHONE
  • KSNODETYPE_ECHO_CANCELING_SPEAKERPHONE

Die zweite Ausnahme vermeidet Endpunkte, die offensichtliche konsolenorientierte Endpunkte sind, die für die Kommunikationsnutzung ungeeignet sind:

  • KSNODETYPE_SPEAKERS_STATIC_JACK
  • Spezielle Audioendpunkte, die nur in mobilen Szenarien vorhanden sind, die für Kommunikationsaudio nicht verwendet werden können

Zum Zeitpunkt dieses Schreibens gibt es eine dritte Ausnahme, um Mobilfunk-Audioendpunkte zu bevorzugen. Diese Ausnahme ist nur für mobile Szenarien mit Mobilfunkfunktion vorhanden und liegt außerhalb des Umfangs dieser Dokumentation. Da dieser Endpunkttyp nur auf mobilen Systemen vorhanden ist, kann diese Ausnahme sicher ignoriert werden.

Weitere Informationen

Jack Description-Eigenschaft

KSPROPERTY_JACK_DESCRIPTION2

KSPROPERTY_JACK_DESCRIPTION3

Pin Category-Eigenschaft

SetupPreferredAudioDevices