Delen via


Dynamische topologieën beheren

Een audioadapter bevat een aantal subdevices voor het onderhouden van externe audioapparaten, zoals luidsprekers en microfoons, die de gebruiker aansluit op de audioaansluitingen voor- of achterpaneel van de adapter. Elke subdevice biedt een bepaalde audioaansluiting of groep aansluitingen.

Het audiostuurprogramma beschrijft elk subapparaat door een topologie te presenteren die in wezen een kaart is van de interne verbindingen en verwerkingselementen binnen het subapparaat. Door het systeem geleverde Windows API-modules en door de leverancier geleverde configuratiescherm-toepassingen gebruiken de topologiegegevens om de mogelijkheden van het subapparaat te bepalen en om de interne besturingspunten te identificeren. Zie De filtertopologie beschikbaar maken voor meer informatie.

WDM-audiostuurprogramma's die zijn ontwikkeld voordat de interfaces IUnregisterSubdevice en IUnregisterPhysicalConnection beschikbaar werden, hebben voornamelijk statische topologieën. Voor deze stuurprogramma's, nadat het adapterstuurprogramma een minipoortstuurprogrammaobject voor het beheer van een subdevice heeft gemaakt, blijven dat object en het bijbehorende subdevice behouden voor de levensduur van het stuurprogrammaobject van de adapter.

In een dynamisch configureerbare audioadapter kan het adapterstuurprogramma tijdens runtime echter subdevices maken en verwijderen om wijzigingen in de hardwareconfiguratie weer te geven wanneer de gebruiker externe apparaten op audioaansluitingen aansluit en verwijdert. Met dit gedrag kunnen subdevices werken als logisch onafhankelijke hardwarefuncties. Met andere woorden, elk subapparaat kan worden ingeschakeld, geconfigureerd en onafhankelijk van de andere subapparaten afgesloten.

Elke subdevice heeft een interne topologie die bestaat uit het volgende:

  • De gegevenspaden door het subdevice.

  • De topologieknooppunten (bijvoorbeeld volumeregeling) die de gegevensstromen verwerken die langs de gegevenspaden stromen.

  • De fysieke verbindingen van de subdevice met andere subdevices in dezelfde adapter.

Wanneer een adapterstuurprogramma dynamisch een subdevice verwijdert, worden de hardwareresources die zijn gebonden aan de interne topologie van het subapparaat vrijgemaakt. Het adapterstuurprogramma kan deze resources vervolgens gebruiken om een nieuw subdevice met een mogelijk andere topologie te maken.

Wanneer u een nieuw audiosubdevice configureert, registreert het adapterstuurprogramma de stuurprogrammainterface van de subdevice als exemplaar van een of meer apparaatinterfaceklassen en voegt de I/O-manager een of meer registervermeldingen toe die symbolische koppelingen bevatten die de interfaceklassen en interface-exemplaren koppelen. Voor toegang tot het subdevice haalt een client in de gebruikersmodus de symbolische koppeling op uit het register en geeft deze als aanroepparameter door aan de functie CreateFile . De client is doorgaans een Windows API-module, zoals Dsound.dll of Wdmaud.drv, of een door de leverancier geleverd configuratiescherm of audiohulpprogrammaprogramma. Zie de Microsoft Windows SDK-documentatie voor meer informatie over CreateFile.

Wanneer het minipoortstuurprogramma de methode IUnregisterSubdevice::UnregisterSubdevice aanroept om een subdevice te verwijderen, vertelt het PortCls-systeemstuurprogramma (Portcls.sys) de I/O-manager om de symbolische koppeling voor de bijbehorende apparaatinterface uit het register te verwijderen. Onderdelen die zijn geregistreerd voor apparaatinterfaceverwijderingsevenementen ontvangen een melding wanneer de interface wordt verwijderd.

De audioadapter kan een jack-presence-circuit bevatten om het minipoortstuurprogramma op de hoogte te stellen wanneer een stekker in een audioaansluiting wordt geplaatst of verwijderd. Wanneer de gebruiker een stekker in een audioaansluiting plaatst, voegt het adapterstuurprogramma de apparaatinterface van het bijbehorende subapparaat toe aan het register. Wanneer de gebruiker een stekker van een audioaansluiting verwijdert, verwijdert het adapterstuurprogramma de bijbehorende apparaatinterface uit het register.

Audioadapters die dynamische topologieën ondersteunen, hebben de volgende voordelen:

  • Gebruiksvriendelijk

    Tenzij desktopluidsprekers, hoofdtelefoons en andere externe audioapparaten daadwerkelijk zijn aangesloten op audioaansluitingen op de voor- of achterpanelen van de audioadapter, worden deze apparaten niet weergegeven voor audiotoepassingen die beschikbaar zijn voor gebruik.

  • Energie-efficiënt

    Wanneer een gebruiker een stekker uit een audio-aansluiting verwijdert, kan het stuurprogramma het gedeelte van het adaptercircuit dat die aansluiting bedient uitschakelen.

  • Configureerbaar

    Nadat u een subdevice hebt verwijderd, kan het stuurprogramma de hardwareresources gebruiken die zijn gebonden aan de interne topologie van de subdevice om een nieuw subdevice met een mogelijk andere topologie te maken.