Verwalten dynamischer Topologien
Ein Audioadapter enthält eine Reihe von Untergeräten für die Wartung externer Audiogeräte, z. B. Lautsprecher und Mikrofone, die der Benutzer an die Front- oder Backpanel-Audiobuchsen des Adapters einsteckt. Jedes Untergerät verwendet eine bestimmte Audiobuchse oder Eine bestimmte Gruppe von Buchsen.
Der Audiotreiber beschreibt die einzelnen Untergeräte, indem er eine Topologie darstellt, die im Wesentlichen eine Zuordnung der internen Verbindungen und Verarbeitungselemente innerhalb des Untergeräts darstellt. Vom System bereitgestellte Windows-API-Module und vom Hersteller bereitgestellte Systemsteuerungsanwendungen verwenden die Topologieinformationen, um die Funktionen des Untergerätes zu bestimmen und seine internen Kontrollpunkte zu identifizieren. Weitere Informationen finden Sie unter Verfügbarmachen der Filtertopologie.
WDM-Audiotreiber, die entwickelt wurden, bevor die Schnittstellen IUnregisterSubdevice und IUnregisterPhysicalConnection verfügbar wurden, weisen größtenteils statische Topologien auf. Nachdem der Adaptertreiber für diese Treiber ein Miniporttreiberobjekt zum Verwalten eines Untergerätes erstellt hat, bleiben dieses Objekt und das zugehörige Untergerät für die Lebensdauer des Adaptertreiberobjekts erhalten.
In einem dynamisch konfigurierbaren Audioadapter kann der Adaptertreiber jedoch Untergeräte zur Laufzeit erstellen und löschen, um Änderungen in der Hardwarekonfiguration widerzuspiegeln, wenn der Benutzer externe Geräte an Audiobuchsen ansteckt und entfernt. Dieses Verhalten ermöglicht es Untergeräten, als logisch unabhängige Hardwarefunktionen zu arbeiten. Anders ausgedrückt: Jedes Untergerät kann unabhängig von den anderen Untervorgängen eingeschaltet, konfiguriert und heruntergefahren werden.
Jedes Untergerät verfügt über eine interne Topologie, die folgendes umfasst:
Die Datenpfade durch das Untergerät.
Die Topologieknoten (z. B. Volumesteuerung), die die Datenströme verarbeiten, die entlang der Datenpfade fließen.
Die physischen Verbindungen des Untergerätes mit anderen Untergeräte im gleichen Adapter.
Wenn ein Adaptertreiber ein Untergerät dynamisch entfernt, gibt er die Hardwareressourcen frei, die an die interne Topologie des Untergerätes gebunden sind. Der Adaptertreiber kann diese Ressourcen dann verwenden, um ein neues Untergerät mit einer möglicherweise anderen Topologie zu erstellen.
Beim Konfigurieren eines neuen Audiountergerätes registriert der Adaptertreiber die Treiberschnittstelle des Untergerätes als instance einer oder mehrerer Geräteschnittstellenklassen, und der E/A-Manager fügt einen oder mehrere Registrierungseinträge hinzu, die symbolische Links enthalten, die die Schnittstellenklassen und Schnittstelleninstanzen zuordnen. Um auf das Untergerät zuzugreifen, ruft ein Client im Benutzermodus den symbolischen Link aus der Registrierung ab und übergibt ihn als Aufrufparameter an die CreateFile-Funktion . In der Regel handelt es sich beim Client um ein Windows-API-Modul, z. B. Dsound.dll oder Wdmaud.drv, oder um eine vom Hersteller bereitgestellte Systemsteuerung oder ein Audio-Hilfsprogramm. Weitere Informationen zu CreateFile finden Sie in der Microsoft Windows SDK-Dokumentation.
Wenn der Miniporttreiber die IUnregisterSubdevice::UnregisterSubdevice-Methode aufruft , um ein Untergerät zu entfernen, fordert der PortCls-Systemtreiber (Portcls.sys) den E/A-Manager an, den symbolischen Link für die zugeordnete Geräteschnittstelle aus der Registrierung zu entfernen. Komponenten, die für Geräteschnittstellenentfernungsereignisse registriert sind, erhalten eine Benachrichtigung, wenn die Schnittstelle entfernt wird.
Der Audioadapter kann eine Klinken-Anwesenheitsschaltung enthalten, um den Miniporttreiber zu benachrichtigen, wenn ein Stecker in eine Audiobuchse ein- oder entfernt wird. Wenn der Benutzer einen Stecker in eine Audiobuchse einfügt, fügt der Adaptertreiber der Registrierung die Geräteschnittstelle des zugeordneten Untergerätes hinzu. Wenn der Benutzer einen Stecker aus einer Audiobuchse entfernt, entfernt der Adaptertreiber die entsprechende Geräteschnittstelle aus der Registrierung.
Audioadapter, die dynamische Topologien unterstützen, haben die folgenden Vorteile:
Benutzerfreundlich
Es sei denn, Desktoplautsprecher, Kopfhörer und andere externe Audiogeräte sind tatsächlich an Audiobuchsen an der Front- oder Rückseite des Audioadapters angeschlossen, stellt das System diese Geräte nicht für Audioanwendungen zur Verfügung.
Energieeffizient
Wenn der Benutzer einen Stecker aus einer Audiobuchse entfernt, kann der Treiber den Teil der Adapterschaltung herunterfahren, der diese Buchse unterstützt.
Konfigurierbar
Nach dem Entfernen eines Untergeräts kann der Treiber die Hardwareressourcen verwenden, die an die interne Topologie des Untergeräts gebunden waren, um ein neues Untergerät mit einer möglicherweise anderen Topologie zu erstellen.