次の方法で共有


保証されたコントラクト DMA バッファー モデルの使用

Windows Vista のディスプレイ ドライバー モデルでは、レンダリング デバイスの DMA バッファーとパッチの場所リストのサイズが保証されます。 パッチ場所リストには、DMA バッファー内のコマンドによって参照されるリソースの物理メモリ アドレスが含まれています。

保証されたコントラクト モードでは、ユーザー モード ディスプレイ ドライバーは、DMA バッファーと修正プログラムの場所リストの正確なサイズを認識し、このリストはユーザー モードディスプレイ ドライバーがコマンド バッファーを満たし、pfnRenderCbを呼び出してディスプレイ ミニポート ドライバーに送信する際の変換に使用できます。 各 pfnRenderCb の呼び出し後に、ユーザー モード ディスプレイ ドライバーは、次の変換 (つまり、pfnRenderCb への次の呼び出し) に使用できる DMA バッファーとパッチ場所リストのサイズを受信します。

ビデオ メモリ マネージャーは、次の変換が完了するまで、そのデバイスの DMA バッファーとパッチ場所リストをトリミングしないことを保証します。 ディスプレイ ミニポート ドライバーは、1 つのコマンド バッファーを正確に 1 つの DMA バッファーと 1 つのパッチ場所リストに変換できる必要があります。 この変換が不可能な場合、ユーザー モード コマンド バッファーは定義上無効になります。 ディスプレイ ミニポート ドライバーは、変換中に DMA バッファー領域とパッチ場所リストが足りないことを示す状態を返すことはできず、返そうとするとメモリ マネージャーは保証された DMA コントラクトの要件を満たせないため、ビデオ メモリ マネージャーがシステムのバグを調べることになります。