Condividi tramite


Gestione delle topologie dinamiche

Una scheda audio contiene alcuni sottodispositivi per la manutenzione di dispositivi audio esterni, ad esempio altoparlanti e microfoni, che l'utente inserisce nel jack audio front-o back-panel dell'adattatore. Ogni sottoinsieme servizi un particolare jack audio o un gruppo di jack.

Il driver audio descrive ogni sottodispositivo presentando una topologia che è essenzialmente una mappa delle connessioni interne e degli elementi di elaborazione all'interno del sottodispositivo. I moduli API Windows forniti dal sistema e le applicazioni del pannello di controllo forniti dal fornitore usano le informazioni sulla topologia per determinare le funzionalità del sottodispositivo e per identificare i punti interni del controllo. Per altre informazioni, vedere Esposizione della topologia filtro.

I driver audio WDM sviluppati prima che le interfacce IUnregisterSubdevice e IUnregisterPhysicalConnection siano disponibili principalmente topologie statiche. Per questi driver, dopo che il driver dell'adattatore crea un oggetto driver miniport per gestire un subdevice, tale oggetto e il relativo sottodispositivo associato per la durata dell'oggetto driver dell'adattatore.

Tuttavia, in una scheda audio configurabile dinamicamente, il driver dell'adattatore può creare ed eliminare i sottodispositivi in fase di esecuzione per riflettere le modifiche nella configurazione hardware perché l'utente collega i dispositivi esterni in jack audio e li rimuove. Questo comportamento consente ai sottodevice di funzionare come funzioni hardware logicamente indipendenti. In altre parole, ogni sottodevice può essere alimentato, configurato e arrestato in modo indipendente dagli altri sottodevice.

Ogni sottodispositivo ha una topologia interna costituita dal seguente:

  • Percorsi dei dati tramite il sottodispositivo.

  • I nodi della topologia (ad esempio, il controllo del volume) che elaborano i flussi di dati che vengono trasmessi lungo i percorsi dei dati.

  • Le connessioni fisiche del sottodevice ad altri sottodispositivi nella stessa scheda.

Quando un driver di adattatore rimuove dinamicamente un subdevice, libera le risorse hardware associate alla topologia interna del dispositivo secondario. Il driver della scheda può quindi usare queste risorse per creare un nuovo sottodevice con una topologia possibilmente diversa.

Quando si configura un nuovo subdevice audio, il driver dell'adattatore registra l'interfaccia driver del subdevice come istanza di una o più classi di interfaccia del dispositivo e la gestione I/O aggiunge una o più voci del Registro di sistema che contengono collegamenti simbolici che associano le classi di interfaccia e le istanze dell'interfaccia. Per accedere al sottodevice, un client in modalità utente recupera il collegamento simbolico dal Registro di sistema e lo passa come parametro di chiamata alla funzione CreateFile . In genere, il client è un modulo API windows, ad esempio Dsound.dll o Wdmaud.drv, o un pannello di controllo fornito dal fornitore o dal programma di utilità audio. Per altre informazioni su CreateFile, vedere la documentazione di Microsoft Windows SDK.

Quando il driver miniport chiama il metodo IUnregisterSubdevice::UnregisterSubdevice per rimuovere un subdevice, il driver di sistema PortCls (Portcls.sys) indica al gestore I/O di rimuovere il collegamento simbolico per l'interfaccia del dispositivo associata dal Registro di sistema. I componenti registrati per gli eventi di rimozione dell'interfaccia dispositivo ricevono una notifica quando l'interfaccia viene rimossa.

L'adattatore audio può contenere circuiti jack-presence per notificare al driver miniport quando un plug viene inserito o rimosso da un jack audio. Quando l'utente inserisce un plug in un jack audio, il driver dell'adattatore aggiunge l'interfaccia del dispositivo del sottodevice associato al Registro di sistema. Quando l'utente rimuove un plug da un jack audio, il driver dell'adattatore rimuove l'interfaccia del dispositivo corrispondente dal Registro di sistema.

Le schede audio che supportano topologie dinamiche presentano i vantaggi seguenti:

  • Facile da usare

    A meno che gli altoparlanti desktop, le cuffie e altri dispositivi audio esterni siano effettivamente collegati a jack audio sui pannelli frontali o posteriori dell'adattatore audio, il sistema non presenta questi dispositivi alle applicazioni audio come disponibili per l'uso.

  • Efficienza della potenza

    Quando l'utente rimuove un plug da un jack audio, il driver può ridurre la parte del circuito adattatore che esegue il jack.

  • Configurabile

    Dopo aver rimosso un sottodevice, il driver può usare le risorse hardware associate alla topologia interna del dispositivo secondario per creare un nuovo sottodispositivo con una topologia probabilmente diversa.