Freigeben über


KSJACK_DESCRIPTION3 Struktur

In Windows-Betriebssystemen ab Version 22H2 kann die KSJACK_DESCRIPTION3 Struktur verwendet werden, um die aktuelle Konfiguration der Buchse anzugeben und zu ändern.

Syntax

typedef struct _tagKSJACK_DESCRIPTION3
{
  ULONG              ConfigId; 

} KSJACK_DESCRIPTION3, *PKSJACK_DESCRIPTION3;

Member

ConfigId

Treiberdefinierte Bitmaske oder Enumeration, die die aktuelle Konfiguration beschreibt und diesen Wert ändert, führt dazu, dass audioendpointbuilder den Cache aktualisiert, um sicherzustellen, dass der veröffentlichte Endpunkt mit der aktuellen Konfiguration übereinstimmt.

Hinweise

Verwenden von KSJACK_DESCRIPTION3 zum Kommunizieren von Audiogeräteänderungen

Das Windows-Audiosystem speichert Audiogerätefunktionen während der Erstellung von Audioendpunkten zwischen. Diese zwischengespeicherten Werte gelten für Funktionen wie das Vorhandensein einer HW-Audio-Engine, Formatunterstützung, Container-ID, Puffergrößenmerkmale usw. Diese zwischengespeicherten Werte werden für die Lebensdauer der Windows-Installation beibehalten. Sie werden nur aktualisiert, wenn der Audiotreiber aktualisiert wird oder während eines Betriebssystemupgrades.

Mit KSJACK_DESCRIPTION3 bietet das Windows-Audiosystem einen Mechanismus, mit dem der Audiotreiber angibt, dass alle zwischengespeicherten Werte verworfen und aktualisiert werden. Die Anforderung kann durch Änderungen an den Funktionen des Audiogeräts ausgelöst werden, z. B. Durch Ressourceneinschränkungen.

Wenn der Treiber den Inhalt von KSJACK_DESCRIPTION3 zur Laufzeit ändert, löst der Treiber das vorhandene KSEVENT_PINCAPS_JACKINFOCHANGE-Ereignis aus.

Das Windows-Audiosystem verwaltet den zuletzt gemeldeten ConfigId-Wert , der auf dem Audioendpunkt zwischengespeichert wurde. Der ConfigId-Wert wird als Reaktion auf KSEVENT_PINCAPS_JACKINFOCHANGE Ereignis und während der normalen Verarbeitung des Audioendpunkts beim Systemstart, beim Neustart des Audioendpunkt-Generator-Diensts, bei der Aktualisierung des Audiotreibers oder bei Änderungen des Schnittstellenstatus für den Endpunkt abgerufen.

Wenn sich der abgerufene ConfigId-Wert vom zuvor gespeicherten Wert unterscheidet, verwirft das Windows-Audiosystem alle zuvor zwischengespeicherten Endpunktfunktionen und aktualisiert sie.

Die empfohlene Verwendung besteht darin, mehrere Audioendpunktkonfigurationen innerhalb des Treibers zu definieren, die durch den Wert ConfigId (Bitmaske oder Enumeration) gesteuert werden. Beispielsweise kann ConfigId von 1 auf das Vorhandensein eines Audiomodulknotens hinweisen, während ConfigId 2 keinen Audiomodulknoten meldet. Die vom Treiber verwendete ConfigId wird über KSPROPERTY_JACK_DESCRIPTION3 für das Windows-Audiosystem freigegeben und synchronisiert den Endpunkt mit den funktionen, die vom Windows-Audiosystem zwischengespeichert werden.

Der Wert der ConfigId ist für Windows nicht transparent. Der Audiotreiber kann einen zeitstempel oder inkrementierenden Wert verwenden, der zur Laufzeit anstelle einer Bitmaske oder Enumeration ausgewählt wurde, wie oben vorgeschlagen. Diese Strategie wird nicht empfohlen, da sie beim Starten zu unnötigen Endpunktaktualisierungen oder Schnittstellenänderungen führen kann, um den zuletzt gespeicherten ConfigId-Wert mit dem neu gemeldeten Wert zu synchronisieren, auch wenn die Endpunktfunktionen unverändert sind. Dieser Ansatz kann auch die Wahrscheinlichkeit erhöhen, dass der Treiber und Windows nicht mehr synchronisiert werden, was zu Fehlern bei der Audiowiedergabe führen kann.

Der Mechanismus, der verwendet wird, um die zwischengespeicherten Werte auf dem Endpunkt zu aktualisieren, wenn sich die ConfigId ändert, ist der gleiche wie für Betriebssystemupgrades und Treiber-Updates. Es wird ein neuer Endpunkt mit einer anderen ID erstellt, der die aktualisierten zwischengespeicherten Werte enthält, die den neuen ConfigId-Einstellungen für den Endpunkt entsprechen. Benutzereinstellungen werden dann vom alten Endpunkt in den neuen Endpunkt kopiert, und schließlich wird der alte Endpunkt gelöscht. Weitere Informationen zum Migrationsprozess von Audioendpunkten in Betriebssystemupgrades finden Sie unter Betriebssystemupgrades.

Requirements (Anforderungen)

Version

Verfügbar in Version 22H2 und höher windows-Betriebssystemen.

Header

Ksmedia.h (include Ksmedia.h)

Siehe auch

KSJACK_DESCRIPTION

KSPROPERTY_JACK_DESCRIPTION3

IKsJackDescription2::GetJackDescription2

Dynamische Formatänderung

Betriebssystemupgrades