KSPROPERTY_JACK_DESCRIPTION3
Die KSPROPERTY_JACK_DESCRIPTION3-Eigenschaft wird als pinweise Eigenschaft implementiert, auf die mithilfe des Filterhandles zugegriffen wird.
In Windows-Betriebssystemen ab Version 22H2 kann die zugehörige KSJACK_DESCRIPTION3-Struktur verwendet werden, um die aktuelle Konfiguration der Buchse anzugeben und zu ändern.
Nutzungszusammenfassungstabelle
Herunterladen | Set | Ziel | Eigenschaftsdeskriptortyp | Eigenschaftswerttyp |
---|---|---|---|---|
Ja |
Nein |
Pin Factory (über Filterhandle) |
KSMULTIPLE_ITEM gefolgt von einem Array von KSJACK_DESCRIPTION3 Strukturen |
Der Eigenschaftswert (instance Daten) ist ein KSMULTIPLE_ITEM, gefolgt von einem Array KSJACK_DESCRIPTION3 Strukturen.
Rückgabewert
Eine KSPROPERTY_JACK_DESCRIPTION3-Eigenschaftsanforderung gibt einen KSMULTIPLE_ITEM gefolgt von einem Array von N-KSJACK_DESCRIPTION3-Strukturen zurück, wobei N = die Anzahl der Buchsen ist, die dem angegebenen Bridge-Pin zugeordnet sind. Die folgende Liste zeigt die Elemente, die von der Eigenschaftsanforderung zurückgegeben werden.
KSMULTIPLE_ITEM. Size = sizeof(KSMULTIPLE_ITEM) + N * sizeof(KSJACK_DESCRIPTION3)
KSMULTIPLE_ITEM. Anzahl = N
KSJACK_DESCRIPTION3[0]
...
KSJACK_DESCRIPTION3[N-1]
Bemerkungen
Kommunizieren von Audiogeräteänderungen mithilfe von KSJACK_DESCRIPTION3 und KSPROPERTY_JACK_DESCRIPTION3
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.
Anforderungen
Unterstützte Mindestversion (Client) |
Verfügbar in Version 22H2 und höher windows-Betriebssystemen. |
Header |
Ksmedia.h |