DirectMusic ポートとミニポート ドライバー内のすべての MIDI トランスポートは、同じインターフェイス ( IMXF) を使用して実行されます。
IMXF は DirectMusic MIDI 変換フィルターの COM インターフェイスです。 MIDI データを処理するポート ドライバー内のミニポート ドライバー、シーケンサー、およびその他のエンティティは、共通の COM インターフェイスとして IMXF を使用します。 ミニポート ドライバーは、このインターフェイスを実装すると、MIDI トランスポートに参加できます。 PortCls に存在する IPortDMus は IMXF を管理します。 シンクをキャプチャするためのキャプチャ デバイスからのインターフェイスも IMXF インターフェイスです。
MIDI データは、パックされたタイムスタンプ付きデータのバッファーで、ユーザー モードとカーネル モードの間で転送されます。 カーネル ポート ドライバーは、これらのバッファーを個々のイベントに分割します ( DMUS_KERNEL_EVENTを参照)。 高分解能 MIDI シーケンサーは、トリガー時間が発生したときにミニポート ドライバーにこれらのイベントを渡します。
入力側では、カーネル ポート ドライバーは、ミニポート ドライバーから個々の入力メッセージを抽出し、ユーザー モードに渡すパックされたバッファーをビルドします。 したがって、DirectMusic ミニポート ドライバーのデータトランスポート モデルは、 IMXF::P utMessage と IAllocatorMXF::GetMessage で構成されます。
IMXF インターフェイスでは、次のメソッドがサポートされています。
IAllocatorMXF インターフェイスは、次のメソッドを追加して IMXF を拡張します。
これらのインターフェイスの使用方法の詳細については、「 アロケーター」を参照してください。