Condividi tramite


Uso del modello di buffer DMA del contratto garantito

Il modello di driver visualizzato per Windows Vista garantisce le dimensioni dei buffer DMA e degli elenchi di patch per un dispositivo di rendering. Un elenco di patch-location contiene gli indirizzi di memoria fisica delle risorse a cui fa riferimento i comandi nel buffer DMA.

In modalità contratto garantita, il driver di visualizzazione in modalità utente è consapevole delle dimensioni esatte del buffer DMA e dell'elenco di posizioni patch disponibili per la traduzione quando il driver di visualizzazione in modalità utente riempie i buffer dei comandi e chiama pfnRenderCb per inviarli al driver miniport visualizzato. Dopo ogni chiamata a pfnRenderCb, il driver di visualizzazione in modalità utente riceve le dimensioni dell'elenco di buffer DMA e patch-location disponibile per la traduzione seguente, ovvero la chiamata seguente a pfnRenderCb.

La gestione memoria video garantisce di non tagliare i buffer DMA e gli elenchi di posizioni patch per tale dispositivo fino al completamento della traduzione successiva. Il driver miniport di visualizzazione deve essere in grado di tradurre un buffer di comandi in un buffer DMA e in un elenco di patch. Se questa traduzione non è possibile, il buffer dei comandi in modalità utente è, per definizione, non valido. Il driver miniport visualizzato non può restituire lo stato che indica che non è disponibile nello spazio buffer DMA e negli elenchi di posizioni patch durante la traduzione; in questo modo si verifica un bug di gestione memoria video che controlla il sistema perché la gestione memoria non è riuscita a soddisfare i requisiti del contratto DMA garantito.