使用保證的合約 DMA 緩衝區模型

Windows Vista 的顯示驅動程式模型保證轉譯裝置的 DMA 緩衝區和修補程式位置清單的大小。 修補程式位置清單包含 DMA 緩衝區中命令所參考之資源的實體記憶體位址。

在保證的合約模式中,使用者模式顯示驅動程式知道當使用者模式顯示驅動程式填滿命令緩衝區並呼叫 pfnRenderCb 將其提交至顯示迷你埠驅動程式時,可用於轉譯的 DMA 緩衝區和修補程式位置清單大小。 每次呼叫 pfnRenderCb之後,使用者模式顯示驅動程式會收到 DMA 緩衝區大小和修補程式位置清單的大小,該清單適用于下列轉譯 (,也就是下列 pfnRenderCb) 呼叫。

影片記憶體管理員保證不會修剪該裝置的 DMA 緩衝區和修補程式位置清單,直到下一次翻譯完成為止。 顯示迷你埠驅動程式必須能夠將一個命令緩衝區轉譯成一個 DMA 緩衝區和一個修補程式位置清單。 如果無法進行此轉譯,則使用者模式命令緩衝區的定義無效。 顯示迷你埠驅動程式無法在轉譯期間傳回指出其不在 DMA 緩衝區空間和修補程式位置清單的狀態;這樣做會導致視訊記憶體管理員錯誤檢查系統,因為記憶體管理員無法符合保證的 DMA 合約需求。