汎用ミニポート ドライバーの上端インターフェイス ( WDM オーディオ用語を参照) は、関数テーブルで構成されます。 一部の非オーディオ ミニポート ドライバーは、登録中にポート ドライバーに関数テーブルを提供します。この時点で、ミニポート ドライバーは、ミニポート ドライバーが必要とするコンテキスト構造のサイズをポート ドライバーに通知します。 ポート ドライバーは、関数テーブルをプライベートな場所にコピーし、コンテキスト構造を割り当て、関数テーブルで初期化関数を呼び出し、コンテキスト構造へのポインターを渡します。
同様に、オーディオ ミニポート ドライバーは関数テーブルを使用しますが、静的に割り当てられ、ポート ドライバーによってコピーする必要はありません。 また、ポート ドライバーは、指定されたプールからコンテキスト ("オブジェクト") メモリを取得し、関数テーブルへのポインターをコンテキストにインストールします。 関数テーブル ポインターは常にコンテキストの最初のフィールドであるため、ポート ドライバーはコンテキスト ポインターのみを必要とし、コンテキストを介して関数テーブルにアクセスできます。
このアプローチは、COM が抽象化されたオブジェクトを作成するための、堅牢で効率的で広く理解されているモデルを提供するためです。 オーディオ ミニポート ドライバー モデルは、COMおよびその関連文献を通じた業界経験を活用します。 オブジェクトは、C または C++ で実装および使用できます。 アセンブリ言語も使用できますが、移植性が必要ない場合にのみ使用してください。