Partager via


Spécification de segments pour les mémoires tampons DMA

Le pilote miniport d’affichage peut spécifier des segments d’ouverture à partir desquels les mémoires tampons DMA peuvent être allouées. Les mémoires tampons DMA peuvent également être allouées en tant que mémoire système verrouillée contiguë.

Le gestionnaire de mémoire vidéo alloue et détruit les mémoires tampons DMA lorsque les applications en ont besoin. Par conséquent, le gestionnaire de mémoire vidéo nécessite un ensemble de segments à partir desquels il peut allouer des mémoires tampons DMA. Notez que l’ensemble de segments peut se composer d’un seul segment.

Lorsque le sous-système du noyau graphique Microsoft DirectX appelle la fonction DxgkDdiCreateDevice du pilote miniport d’affichage pour créer un périphérique de contexte graphique, le pilote de miniport d’affichage peut spécifier un ensemble de segments à partir duquel le gestionnaire de mémoire vidéo peut allouer des mémoires tampons DMA. Si le pilote de miniport d’affichage définit le membre DmaBufferSegmentSet de la structure DXGK_DEVICEINFO sur 0, le gestionnaire de mémoire vidéo allouera la mémoire non paginée contiguë pour les mémoires tampons DMA ; dans ce cas, le pilote miniport d’affichage doit accéder à la mémoire à l’aide de cycles PCI et, via DMA, doit envoyer des données directement à partir de l’adresse physique de la mémoire. Si le pilote miniport d’affichage définit DmaBufferSegmentSet sur un paramètre différent de zéro, le gestionnaire de mémoire vidéo allouera la mémoire paginable et mappera les pages aux segments d’ouverture spécifiés. Les pages dans les segments d’ouverture sont révélées au pilote miniport d’affichage dans un appel à sa fonction DxgkDdiSubmitCommand .

Notez que le modèle de gestionnaire de mémoire vidéo de base ne prend pas en charge les mémoires tampons DMA dans la mémoire vidéo locale.