Condividi tramite


KSPROPERTY_JACK_DESCRIPTION3

La proprietà KSPROPERTY_JACK_DESCRIPTION3 viene implementata come proprietà pin-wise accessibile tramite l'handle di filtro.

Nella versione 22H2 e versioni successive dei sistemi operativi Windows, la struttura KSJACK_DESCRIPTION3 associata può essere usata per specificare e modificare la configurazione corrente del jack.

Tabella riepilogo utilizzo

Recupero Set Destinazione Tipo di descrittore delle proprietà Tipo di valore della proprietà

No

Pin factory (tramite handle di filtro)

KSP_PIN

KSMULTIPLE_ITEM seguito da una matrice di strutture KSJACK_DESCRIPTION3

Il valore della proprietà (dati dell'istanza) è un KSMULTIPLE_ITEM, seguito da una matrice di strutture KSJACK_DESCRIPTION3.

Valore restituito

Una richiesta di proprietà KSPROPERTY_JACK_DESCRIPTION3 restituisce un KSMULTIPLE_ITEM seguito da una matrice di strutture N KSJACK_DESCRIPTION3, dove N = il numero di jack associati al pin del bridge specificato. L'elenco seguente mostra gli elementi restituiti dalla richiesta di proprietà.

KSMULTIPLE_ITEM. Size = sizeof(KSMULTIPLE_ITEM) + N * sizeof(KSJACK_DESCRIPTION3)

KSMULTIPLE_ITEM. Conteggio = N

KSJACK_DESCRIPTION3[0]

...

KSJACK_DESCRIPTION3[N-1]

Commenti

Comunicazione delle modifiche del dispositivo audio tramite KSJACK_DESCRIPTION3 e KSPROPERTY_JACK_DESCRIPTION3

Il sistema audio Windows memorizza nella cache le funzionalità del dispositivo audio durante la creazione dell'endpoint audio. Questi valori memorizzati nella cache sono per funzionalità quali la presenza di un motore audio HW, il supporto del formato, l'ID contenitore, le caratteristiche delle dimensioni del buffer e così via. Questi valori memorizzati nella cache vengono conservati per la durata dell'installazione di windows. Vengono aggiornati solo quando il driver audio viene aggiornato o durante un aggiornamento del sistema operativo.

Con KSJACK_DESCRIPTION3, il sistema audio Windows fornisce un meccanismo per il driver audio per richiedere l'eliminazione e l'aggiornamento di tutti i valori memorizzati nella cache. La richiesta può essere attivata dalle modifiche apportate alle funzionalità del dispositivo audio, ad esempio vincoli di risorsa.

Ogni volta che il driver modifica il contenuto di KSJACK_DESCRIPTION3 in fase di esecuzione, il driver attiverà l'evento di KSEVENT_PINCAPS_JACKINFOCHANGE esistente.

Il sistema audio Windows gestisce l'ultimo valore ConfigId segnalato memorizzato nella cache nell'endpoint audio. Il valore ConfigId viene recuperato in risposta all'evento KSEVENT_PINCAPS_JACKINFOCHANGE e durante l'elaborazione normale dell'endpoint audio all'avvio del sistema, il riavvio del servizio Audio Endpoint Builder, l'aggiornamento del driver audio o le modifiche dello stato dell'interfaccia per l'endpoint.

Se il valore ConfigId recuperato differisce dal valore archiviato in precedenza, il sistema audio Windows eliminerà tutte le funzionalità dell'endpoint memorizzate nella cache e li aggiornerà.

L'utilizzo consigliato consiste nel definire più configurazioni di endpoint audio all'interno del driver controllato dal valore ConfigId (maschera bit o enumerazione). Ad esempio, ConfigId di 1 può indicare la presenza di un nodo del motore audio, mentre ConfigId 2 non segnala un nodo del motore audio. ConfigId in uso dal driver viene condiviso con il sistema audio Windows tramite KSPROPERTY_JACK_DESCRIPTION3 e agisce per sincronizzare l'endpoint con le funzionalità memorizzate nella cache dal sistema audio Windows.

Il valore di ConfigId è opaco a Windows. Il driver audio può usare un timestamp o un valore di incremento scelto in fase di esecuzione al posto di una maschera di bit o di un'enumerazione come suggerito in precedenza. Questa strategia non è consigliata perché può causare aggiornamenti degli endpoint non necessari durante l'avvio o le modifiche dell'interfaccia per sincronizzare l'ultimo valore ConfigId archiviato al valore appena segnalato, anche quando le funzionalità dell'endpoint non vengono modificate. Questo approccio può anche aumentare le probabilità che il driver e Windows diventino non sincronizzati, che possono causare errori di riproduzione audio.

Il meccanismo usato per aggiornare i valori memorizzati nella cache nell'endpoint quando il ConfigId cambia è lo stesso usato per gli aggiornamenti del sistema operativo e i Aggiornamenti driver. Viene creato un nuovo endpoint con un ID diverso che conterrà i valori memorizzati nella cache aggiornati corrispondenti alle nuove impostazioni ConfigId per l'endpoint, le impostazioni utente vengono quindi copiate dall'endpoint precedente al nuovo endpoint e infine l'endpoint precedente viene eliminato. Per altre informazioni, nel processo di migrazione dell'endpoint audio negli aggiornamenti del sistema operativo, vedere Aggiornamenti del sistema operativo.

Requisiti

Client minimo supportato

Disponibile nella versione 22H2 e versioni successive dei sistemi operativi Windows.

Intestazione

Ksmedia.h

Vedere anche

KSJACK_DESCRIPTION3

KSMULTIPLE_ITEM

Aggiornamenti del sistema operativo