ビデオ ミニポート ドライバーのバス マスター DMA
Windows XP 以降、オペレーティング システム のグラフィックス インターフェイスは、PCI バス マスター デバイス上の DMA をサポートします。 PCI バス マスター デバイスのビデオ ミニポート ドライバーは、ビデオ ポート ドライバーによって提供されるヘルパー関数を使用して、次の種類の DMA サポートを実装できます。
パケット ベースの DMA
パケット ベースの DMA では、要求元の領域とデバイスの間でデータが直接転送されます。 要求者の領域は連続していない可能性があるため、パケット ベースの DMA は、ハードウェアスキャッター/ギャザーサポートを備えたデバイスでより効率的です。 パケット ベースの DMA は、ユーザー空間とデバイスの間で大量の任意のデータを移動する場合に最適な選択肢です。
共通バッファー DMA
共通バッファー DMA では、バッファーは (そのため、共通の) 間で共有され、DMA 操作を繰り返すためにホストとデバイスの両方で使用されます。 一部のドライバーは、共通バッファー DMA を使用して、一連のコマンドなどのドライバー操作データをグラフィックス エンジンにアップロードします。 共通バッファーは連続しており、デバイスとホスト CPU の両方から常にアクセスできます。
共通バッファーは貴重なシステム リソースです。 ドライバーとシステムの全体的なパフォーマンスを向上させるには、ドライバーはできるだけ経済的に共通バッファー DMA を使用する必要があります。
バス マスター アダプターの性質に応じて、ミニポート ドライバーは、排他的にパケット ベースの DMA を使用したり、他のドライバーは排他的に共通バッファー DMA を使用したりします。また一部は両方を使用します。
使用する DMA の種類に関係なく、ミニポート ドライバーは VideoPortGetDmaAdapter を呼び出して VP_DMA_ADAPTER 構造体へのポインターを取得し、後続の DMA 関数呼び出しに使用する必要があります。 DMA 操作を継続する必要がなくなった場合、ミニポート ドライバーは VideoPortPutDmaAdapter を呼び出してアダプター オブジェクトカードを削除する必要があります。
次のサブセクションでは、ビデオ ポート ドライバーによって提供されるパケット ベースおよび共通バッファー DMA サポートを使用する方法について説明します。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示