Dispositivi audio multifunzione
Un dispositivo multifunzione è una singola scheda adattatore che incorpora due o più funzioni separate (o sottodispositivi). Un dispositivo multifunzione può contenere due o più sottodispositivi audio. Può anche estendersi a classi di dispositivi. Un dispositivo contenente dispositivi secondari audio e modem, ad esempio, appartiene sia alla classe multimediale che alla classe modem. Per altre informazioni, vedere Supporto di dispositivi multifunzione.
Il driver di porta WavePci in PortCls pone requisiti speciali per i dispositivi multifunzione. In particolare, un driver dell'adattatore deve fornire un modo per configurare ogni sottodispositivo in modo che possa essere controllato indipendentemente dagli altri sottodispositivi in un dispositivo multifunzione. A tale scopo, è possibile configurare lo spazio di configurazione PCI per il dispositivo multifunzione in uno dei due modi seguenti:
Il metodo preferito consiste nell'assegnare un ID dispositivo separato a ogni sottodispositivo distinto logicamente nel dispositivo multifunzione. Se il dispositivo multifunzione contiene dispositivi secondari modem, audio e joystick, ad esempio, il sistema deve essere in grado di rappresentare ogni sottodispositivo come nodo devnode indipendente nell'albero dei dispositivi. Il sottodispositivo rappresentato da ogni ID dispositivo ha un proprio set di registri di configurazione PCI ed è ortogonale e indipendentemente dagli altri sottodispositivi. Ad esempio, l'abilitazione o la disabilitazione di un sottodispositivo audio (ad esempio, il sottodispositivo audio) non deve avere alcun effetto su qualsiasi altro sottodispositivo ,ad esempio il modem. Questo tipo di dispositivo multifunzione non richiede un supporto per driver specifici dell'hardware, a parte i driver proprietari per i dispositivi secondari stessi.
Un secondo modo per progettare un dispositivo multifunzione consiste nell'assegnare un singolo ID dispositivo al dispositivo nel suo complesso e fornire registri di indirizzi di base (BAR) PCI separati per i singoli sottodispositivi. In questo schema, i sottodispositivi condividono un set comune di registri di configurazione, ma ogni sottodispositivo ha un proprio BAR o BAR. Il driver multifunzione di sistema (ad esempio, Mf.sys in Microsoft Windows 2000 e versioni successive. Vedere Uso del driver del bus multifunzione System-Supplied) può configurare l'indirizzo di base per lo stato, il comando e i dati di ogni sottodispositivo indipendentemente dai registri per le altre funzioni. Se le licenze BAR del dispositivo non sono separabili logicamente dal sottodispositivo, non è possibile usare PortCls per gestire il dispositivo.
Nella parte restante di questa sezione vengono descritti i passaggi necessari per implementare l'approccio (2) nell'elenco precedente. Vengono trattati i seguenti argomenti: