Freigeben über


Funktionstabellen für Miniporttreiber

Die oberseitigen Schnittstellen eines generischen Miniporttreibers (siehe WDM-Audioterminologie) bestehen aus Funktionstabellen. Einige Nicht-Audio-Miniporttreiber stellen die Funktionstabelle während der Registrierung an den Porttreiber bereit. Zu diesem Zeitpunkt informiert der Miniporttreiber den Porttreiber über die Größe der Kontextstruktur, die der Miniporttreiber benötigt. Der Porttreiber kopiert die Funktionstabelle an einen privaten Speicherort, ordnet die Kontextstruktur zu und ruft eine Initialisierungsfunktion in der Funktionstabelle auf, wobei ein Zeiger auf die Kontextstruktur übergeben wird.

Analog dazu verwenden Audio-Miniporttreiber Funktionstabellen, sie sind jedoch statisch zugeordnet und müssen nicht vom Porttreiber kopiert werden. Der Porttreiber ruft auch seinen Kontextspeicher ("Object") aus einem angegebenen Pool ab und installiert einen Zeiger auf die Funktionstabelle im Kontext. Da der Funktionstabellenzeiger 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 verfolgt, da COM ein solides, effizientes, weitverstandenes Modell zum Erstellen abstrahierter Objekte bereitstellt. Das Audio-Miniporttreibermodell nutzt die Branchenerfahrung mit COM und den Text der COM-Literatur. Objekte können in C oder C++ implementiert und verwendet werden. Assemblysprache kann ebenfalls verwendet werden, sollte aber nur verwendet werden, wenn Portabilität nicht erforderlich ist.