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 が呼び出されたときに自動的に発生します。 |
要件
要件 | 値 |
---|---|
対象プラットフォーム | Windows |
ヘッダー | dmusicks.h |