次の方法で共有


IAllocatorMXF インターフェイス (dmusicks.h)

IAllocatorMXF インターフェイスは、DirectMusic ストリームのバッファー ストレージを管理します。 DMus ポート ドライバーは、このインターフェイスを実装し、DMus ミニポート ドライバーに公開します。 DMus ポート ドライバーは、IAllocatorMXF オブジェクトを作成し、このオブジェクトへのポインターを DMus ミニポート ドライバーの IMiniportDMus::NewStream メソッドに渡します。 IAllocatorMXF は、IMXF インターフェイスから継承します。

IAllocatorMXF は、ミニポート ドライバーがポート ドライバーの内部 アロケーターと通信するインターフェイスです。これにより、DMUS_KERNEL_EVENT 構造体のプールの再利用が割り当てられ、管理されます。 各構造体には、タイムスタンプ付きの MIDI イベントを含めることができます。

アロケーターは、大きなイベントを格納するために必要な追加メモリの割り当ても抽象化します。 DMUS_KERNEL_EVENTの uData メンバーは、ポインターのサイズである共用体です。32 ビット システムでは 4 バイト、64 ビット システムでは 8 バイトです。 データがそのスペースに収まるほど小さい場合、uData には実際の MIDI データが含まれます。 ただし、そのイベントのデータが 4 バイトまたは 8 バイトのポインターより大きい場合、cbEvent メンバーはこの事実を示し、uData には、実際の MIDI データではなくバッファーへのポインターが含まれます。 このバッファーはアロケーターによって管理され、任意のポート ドライバー実装の定数サイズです。

継承

IAllocatorMXF インターフェイスは、IUnknown インターフェイスから継承します。 IAllocatorMXF には、次の種類のメンバーもあります。

メソッド

IAllocatorMXF インターフェイスには、次のメソッドがあります。

 
IAllocatorMXF::GetBuffer

GetBuffer メソッドは、長い MIDI イベントにバッファーを割り当てます。
IAllocatorMXF::GetBufferSize

GetBufferSize メソッドは、アロケーターからバッファー サイズを取得します。
IAllocatorMXF::GetMessage

GetMessage メソッドは、ポート ドライバーのアロケーターを使用してDMUS_KERNEL_EVENT構造体を再利用する DirectMusic カーネル モード コンポーネントの取得ポイントとして機能します。
IAllocatorMXF::P utBuffer

現在、このメソッドはミニポート ドライバーでは使用されていません。 PutBuffer メソッドはアロケーターにバッファーを渡しますが、これは IMXF::P utMessage が呼び出されたときに自動的に発生します。

必要条件

要件 価値
ターゲット プラットフォーム ウィンドウズ
ヘッダー dmusicks.h