Dela via


Ljudenheter för flera funktioner

En multifunktionsenhet är ett enda kortkort som innehåller två eller flera separata funktioner (eller underenheter). En multifunktionsenhet kan innehålla två eller flera ljudunderenheter. Det kan också omfatta enhetsklasser. En enhet som innehåller underenheter för ljud och modem tillhör till exempel både medieklassen och modemklassen. Mer information finns i Stöd för multifunktionsenheter.

WavePci-portdrivrutinen i PortCls ställer särskilda krav på multifunktionsenheter. I synnerhet måste en adapterdrivrutin vara ett sätt att konfigurera varje underenhet så att den kan styras oberoende av de andra underenheterna i en multifunktionsenhet. Detta kan du göra genom att konfigurera PCI-konfigurationsutrymmet för din multifunktionsenhet på något av två sätt:

  1. Den bästa metoden är att tilldela ett separat enhets-ID till varje logiskt distinkt underenhet på din multifunktionsenhet. Om multifunktionsenheten till exempel innehåller underenheter för modem, ljud och joystick bör systemet kunna representera varje underenhet som en oberoende devnode i enhetsträdet. Underenheten som representeras av varje enhets-ID har en egen uppsättning PCI-konfigurationsregister och är ortoggonal till och oberoende av de andra underenheterna. Till exempel bör aktivering eller inaktivering av en underenhet (t.ex. ljudunderenheten) inte ha någon effekt på någon annan underenhet (till exempel modemet). Den här typen av multifunktionsenhet kräver inget särskilt maskinvaruspecifikt drivrutinsstöd förutom de egna drivrutinerna för själva underenheterna.

  2. Ett annat sätt att utforma en multifunktionsenhet är att tilldela ett enda enhets-ID till enheten som helhet och att tillhandahålla separata PCI-basadressregister (BAR) för de enskilda underenheterna. I det här schemat delar underenheterna en gemensam uppsättning konfigurationsregister, men varje underenhet har sina egna BAR eller BARs. Systemdrivrutinen för flera funktioner (till exempel Mf.sys på Microsoft Windows 2000 och senare. Se Använda System-Supplied Multifunction Bus Driver) kan konfigurera basadressen för varje underenhets status, kommando och dataregister oberoende av registren för de andra funktionerna. Om enhetens BAR inte är logiskt avgränsade av underenheter kan du inte använda PortCls för att hantera enheten.

Resten av det här avsnittet beskriver de steg som krävs för att implementera metoden (2) i föregående lista. Följande ämnen diskuteras:

Flera ljudunderenheter

Enhetsgränser för flera funktioner