KS のアロケーター

アロケーターは、I/O 要求のフレームと呼ばれるデータ バッファーをインスタンス化する KS オブジェクトです。 フレームは連続メモリのチャンクであり、そのサイズは KSPIN_DESCRIPTOR_EXAllocatorFraming メンバーを通じてベンダーが指定します。

ミニドライバーは、ビデオ カードのオンボード RAM など、複数のバッファーの種類のアロケーターをサポートできます。 ただし、ほとんどのミニドライバーは、既定のアロケーターを使用してシステム メモリを割り当てます。 ミニドライバーは、フレーム サイズ、フレームの最大数、およびアラインメント要件を指定できます。 既定のアロケーターは要件を満たす処理を行い、破棄されたフレームを再利用してパフォーマンスを最適化できます。

ミニドライバーは、KsCreateAllocator ルーチンまたは関連関数を呼び出してアロケーターを作成します。 この呼び出しでは、ミニドライバーは、KSALLOCATOR_FRAMING 構造体へのポインターを渡します。 この構造体には、要求されたアロケーターを記述するパラメーターが含まれています。

ストリーム クラス モデルでは、アロケーターを作成するミニドライバーは、KSPROPERTY_CONNECTION_ALLOCATORFRAMING プロパティをサポートします。 これは、指定したシンク ハンドルの関連する KSALLOCATOR_FRAMING 構造体へのポインターを返す読み取り専用の要求です。

アロケーターを提供するミニドライバーは、KSPROPERTY_STREAM_ALLOCATOR プロパティもサポートする必要があります。 このプロパティは、ストリーム接続ポイントに現在割り当てられているアロケーターのハンドルへの読み取り/書き込みアクセスを提供します。

AVStream ストリームで実行されているミニドライバーには、独自のアロケーターを実装するピンが含まれている場合があります。 これを行うには、KSPIN_DISPATCH 構造体の KSALLOCATOR_DISPATCH メンバーを設定します。 このピンにアロケーターを指定しない場合は、このメンバーに NULL を指定します。

さらに、AVStream ミニドライバーは、KSALLOCATOR_FRAMING_EX 構造体を使用してアロケーターの要件を指定します。 その後、クライアントは KSPROPERTY_CONNECTION_ALLOCATORFRAMING_EX プロパティを使用して、ピンのフレーム要件を取得します。 詳細については、「AVStream アロケーター」をご覧ください。

このセクションでは、次の追加情報を含んでいます。

既定のアロケーター

特定のアロケーターのフィルター処理

割り当てスキーム