Utilisation du modèle de mémoire tampon DMA de contrat garanti

Le modèle de pilote d’affichage pour Windows Vista garantit la taille des mémoires tampons DMA et des listes d’emplacements des correctifs pour un périphérique de rendu. Une liste d’emplacements de correctif contient les adresses de mémoire physique des ressources référencées par les commandes dans la mémoire tampon DMA.

En mode contrat garanti, le pilote d’affichage en mode utilisateur est conscient de la taille exacte de la mémoire tampon DMA et de la liste des emplacements de correctif disponibles pour la traduction lorsque le pilote d’affichage en mode utilisateur remplit les mémoires tampons de commande et appelle pfnRenderCb pour les envoyer au pilote miniport d’affichage. Après chaque appel à pfnRenderCb, le pilote d’affichage en mode utilisateur reçoit la taille de la mémoire tampon DMA et de la liste d’emplacements des correctifs disponibles pour la traduction suivante (autrement dit, l’appel suivant à pfnRenderCb).

Le gestionnaire de mémoire vidéo garantit de ne pas découper les mémoires tampons DMA et les listes d’emplacements des correctifs pour cet appareil tant que la prochaine traduction n’est pas terminée. Le pilote de miniport d’affichage doit être en mesure de traduire une mémoire tampon de commandes en une seule mémoire tampon DMA et une liste d’emplacements de correctif. Si cette traduction n’est pas possible, la mémoire tampon de commande en mode utilisateur n’est, par définition, pas valide. Le pilote de miniport d’affichage ne peut pas retourner status qui indique qu’il n’a pas accès à l’espace tampon DMA et aux listes d’emplacements des correctifs pendant la traduction. Cela entraîne la vérification du bogue du gestionnaire de mémoire vidéo sur le système, car le gestionnaire de mémoire n’a pas satisfait aux exigences du contrat DMA garanti.