Freigeben über


Funktionstabellen für Miniporttreiber

Die oberen Randschnittstellen eines generischen Miniporttreibers (siehe WDM-Audioterminologie) bestehen aus Funktionstabellen. Einige Nicht-Audio-Miniporttreiber liefern die Funktionstabelle während der Registrierung an den Porttreiber, indem der Miniporttreiber diesen über die Größe der benötigten Kontextstruktur informiert. Der Porttreiber kopiert die Funktionstabelle an einen privaten Speicherort, weist die Kontextstruktur zu und ruft eine Initialisierungsfunktion in der Funktionstabelle auf und übergibt einen Zeiger auf die Kontextstruktur.

Ebenso verwenden Audio-Miniporttreiber Funktionstabellen, werden jedoch statisch zugeordnet und müssen nicht vom Porttreiber kopiert werden. Der Porttreiber ruft auch den Kontextspeicher ("Objekt") aus einem angegebenen Pool ab und installiert einen Zeiger auf die Funktionstabelle im Kontext. Da der Zeiger der Funktionstabelle immer das erste Feld im Kontext ist, benötigt der Porttreiber nur einen Kontextzeiger und kann über den Kontext auf die Funktionstabelle zugreifen.

Dieser Ansatz wurde ergriffen, da COM ein solides, effizientes, weitverstandenes Modell zum Erstellen abstrahierter Objekte bereitstellt. Das Audio Miniport-Treibermodell nutzt branchenspezifische Erfahrungen mit COM und der Com-Literatur. Objekte können in C oder C++ implementiert und verwendet werden. Assemblysprache kann auch verwendet werden, sollte jedoch nur verwendet werden, wenn keine Portabilität erforderlich ist.