Adaptertreiberkonstruktion
Die Treiberunterstützung für einen bestimmten Audioadapter Karte erfolgt in Form eines Adaptertreibers. Ein Adaptertreiber besteht aus folgenden Komponenten:
Allgemeiner Adaptercode, der das Starten und Initialisieren des Treibers ausführt und alle Vorgänge implementiert, die für alle Audiofunktionen auf dem Adapter Karte gemeinsam sind.
Eine Reihe von Miniporttreibern, die bestimmte Audiofunktionen auf dem Adapter Karte verwalten.
Der Hardwareanbieter stellt sowohl den allgemeinen Adaptercode als auch den Code für alle Miniporttreiber bereit, die nicht vom System bereitgestellt werden.
Ein Beispiel für den allgemeinen Adaptercode finden Sie in der Implementierung der CAdapterCommon-Schnittstelle im Sysvad-Beispieltreiber, die unter Beispielaudiotreiber erläutert wird.
Mit einem mehrschichtigen Ansatz kann der Anbieter einen Adaptertreiber schreiben, der abhängig von der Hardwarefunktionalität des Adapters auf einer von mehreren Ebenen arbeitet. Bei der Ermittlung des Supportniveaus, das eine bestimmte Hardwarefunktion erfordert, sollte der Anbieter zunächst ermitteln, ob bereits ein vom System bereitgestellter Miniporttreiber vorhanden ist, der die Funktion unterstützt (siehe die Liste der vom System bereitgestellten Miniporttreiber der PcNewMiniport-Funktion ). Andernfalls muss der Anbieter einen proprietären Miniporttreiber implementieren, kann aber möglicherweise trotzdem einen der vom System bereitgestellten Porttreiber verwenden (siehe liste der vom System bereitgestellten Porttreiber der PcNewPort-Funktion ).
Führen Sie zum Implementieren der WDM-Unterstützung für ein Gerät die folgenden Schritte aus:
Wenn ein vom System bereitgestellter Miniporttreiber die Hardwarefunktion bereits unterstützt, verwenden Sie den vorhandenen Miniporttreiber, um die Funktion zu verwalten.
Wenn die Hardwarefunktion nicht mit einem vom System bereitgestellten Miniporttreiber kompatibel ist, bestimmen Sie, ob die Funktion mit mindestens einem der vom System bereitgestellten Porttreiber kompatibel ist. Wenn ein vom System bereitgestellter Porttreiber die Hardwarefunktion unterstützt, schreiben Sie den Teil des Miniporttreibers, der die Funktion verwaltet. Dieser Miniporttreiber sollte die Spezifikation für die Miniportschnittstelle erfüllen, die der besitzereigene Porttreiber erwartet.
Wenn kein vom System bereitgestellter Porttreiber die Hardwarefunktion unterstützt, schreiben Sie einen Minidriver, um die Funktion zu unterstützen. Der Minidriver sollte die Schnittstellenspezifikation für den Streamingklassentreiber erfüllen.
In diesem Abschnitt werden die folgenden Themen erläutert: