次の方法で共有


IMXF インターフェイス

DirectMusic ポートとミニポート ドライバー内のすべての MIDI トランスポートは、同じインターフェイス (IMXF) を使用して実行されます。

IMXF は DirectMusic MIDI 変換フィルターの COM インターフェイスです。 MIDI データを処理するポート ドライバー内のミニポート ドライバー、シーケンサー、その他のエンティティは、共通の COM インターフェイスとして IMXF を使用します。 ミニポート ドライバーは、このインターフェイスを実装すると、MIDI トランスポートに参加することができます。 PortCls に存在する IPortDMus は、IMXF を管理します。 シンクをキャプチャするためのキャプチャ デバイスからのインターフェイスも IMXF インターフェイスです。

MIDI データは、パッキングされたタイムスタンプ付きデータのバッファーにおいて、ユーザー モードとカーネル モードの間で転送されます。 カーネル ポート ドライバーは、これらのバッファーを個々のイベントに分割します (DMUS_KERNEL_EVENT を参照)。 高音質 MIDI シーケンサーは、トリガー時間が発生したときにミニポート ドライバーにこれらのイベントを渡します。

入力側では、カーネル ポート ドライバーが、ミニポート ドライバーから個々の入力メッセージを抽出し、ユーザー モードに渡すパッキングされたバッファーをビルドします。 したがって、DirectMusic ミニポート ドライバーのデータ トランスポート モデルは、IMXF::PutMessageIAllocatorMXF::GetMessage で構成されます。

IMXF インターフェイスでは次のメソッドがサポートされています。

IMXF::ConnectOutput

IMXF::DisconnectOutput

IMXF::PutMessage

IMXF::SetState

IAllocatorMXF インターフェイスは、次のメソッドを追加することにより IMXF を拡張します。

IAllocatorMXF::GetMessage

IAllocatorMXF::GetBufferSize

IAllocatorMXF::GetBuffer

IAllocatorMXF::PutBuffer

これらのインターフェイスの使用方法について詳しくは、「アロケーター」をご覧ください。