Tabelle delle funzioni per i driver miniport

Le interfacce superiori del driver miniport generico (vedere Terminologia audio WDM) sono costituite da tabelle delle funzioni. Alcuni driver miniport non audio forniscono la tabella delle funzioni al driver della porta durante la registrazione, al momento in cui il driver miniport informa il driver della porta delle dimensioni della struttura di contesto che il driver miniport richiederà. Il driver di porta copia la tabella delle funzioni in una posizione privata, alloca la struttura del contesto e chiama una funzione di inizializzazione nella tabella delle funzioni, passando un puntatore alla struttura del contesto.

Analogamente, i driver miniport audio usano le tabelle delle funzioni, ma vengono allocati in modo statico e non devono essere copiati dal driver della porta. Il driver di porta recupera anche la memoria del contesto ("oggetto") da un pool specificato e installa un puntatore alla tabella della funzione nel contesto. Poiché il puntatore alla tabella delle funzioni è sempre il primo campo nel contesto, il driver della porta necessita solo di un puntatore di contesto e può accedere alla tabella delle funzioni tramite il contesto.

Questo approccio è stato adottato perché COM fornisce un modello solido, efficiente e ampiamente comprensibile per la creazione di oggetti astratti. Il modello di driver miniport audio sfrutta l'esperienza del settore con COM e il corpo della letteratura COM. Gli oggetti possono essere implementati e usati in C o C++. È anche possibile usare il linguaggio assembly, ma deve essere usato solo se la portabilità non è necessaria.