Condividi tramite


struttura KSJACK_DESCRIPTION3

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

Sintassi

typedef struct _tagKSJACK_DESCRIPTION3
{
  ULONG              ConfigId; 

} KSJACK_DESCRIPTION3, *PKSJACK_DESCRIPTION3;

Members

ConfigId

Maschera di bit definita dal driver o enumerazione che descrive la configurazione corrente, modificando questo valore, audioendpointbuilder aggiorna la cache per assicurarsi che l'endpoint pubblicato corrisponda alla configurazione corrente.

Commenti

Uso di KSJACK_DESCRIPTION3 per comunicare le modifiche del dispositivo audio

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 che tutti i valori memorizzati nella cache vengano eliminati e aggiornati. La richiesta può essere attivata dalle modifiche apportate alle funzionalità del dispositivo audio, ad esempio vincoli di risorse.

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 mantiene l'ultimo valore ConfigId segnalato memorizzato nella cache nell'endpoint audio. Il valore ConfigId viene recuperato in risposta a KSEVENT_PINCAPS_JACKINFOCHANGE evento 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 è diverso dal valore archiviato in precedenza, il sistema audio Windows eliminerà tutte le funzionalità dell'endpoint memorizzate nella cache e le aggiornerà.

L'utilizzo consigliato consiste nel definire più configurazioni di endpoint audio all'interno del driver controllato dal valore ConfigId (maschera di 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. Il 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 un'enumerazione come suggerito in precedenza. Questa strategia non è consigliata perché può comportare aggiornamenti dell'endpoint non necessari durante l'avvio o le modifiche dell'interfaccia per sincronizzare l'ultimo valore ConfigId archiviato con il valore appena segnalato, anche quando le funzionalità dell'endpoint sono invariate. Questo approccio può anche aumentare le probabilità che il driver e Windows diventino non sincronizzati, il che può causare errori di riproduzione audio.

Il meccanismo usato per aggiornare i valori memorizzati nella cache nell'endpoint quando il ConfigId viene modificato è uguale a quello usato per gli aggiornamenti del sistema operativo e il driver Aggiornamenti. 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, sul processo di migrazione degli endpoint audio negli aggiornamenti del sistema operativo, vedere Aggiornamenti del sistema operativo.

Requisiti

Versione

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

Intestazione

Ksmedia.h (include Ksmedia.h)

Vedere anche

KSJACK_DESCRIPTION

KSPROPERTY_JACK_DESCRIPTION3

IKsJackDescription2::GetJackDescription2

Modifica del formato dinamico

Aggiornamenti del sistema operativo