Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Un segment d’espace d’ouverture linéaire est similaire à un segment d’espace mémoire linéaire. Toutefois, le segment d’espace d’ouverture n’est qu’un espace d’adressage et ne peut pas contenir de bits.
Pour contenir les bits, les pages mémoire système doivent être allouées, et la plage d’espace d’adressage doit être redirigée pour faire référence à ces pages. Le pilote d’affichage miniport en mode noyau (KMD) doit implémenter la fonction DxgkDdiBuildPagingBuffer pour DXGK_OPERATION_MAP_APERTURE_SEGMENT et DXGK_OPERATION_UNMAP_APERTURE_SEGMENT types d’opérations pour gérer la redirection et doit exposer cette fonction comme décrit dans DriverEntry of Display Miniport Driver. Dxgkrnl appelle DxgkDdiBuildPagingBuffer avec la plage d’espace d’adressage à rediriger et le MDL qui référence les pages de mémoire système physiques qui ont été allouées.
Le KMD effectue généralement la redirection de la plage d’espace d’adressage en programmant une table de pages, inconnue du gestionnaire de mémoire vidéo (VidMm).
Le pilote doit définir le champ de bits Aperture dans le membre Flags de la structure DXGK_SEGMENTDESCRIPTOR pour spécifier un segment d'espace d'ouverture linéaire. Le pilote peut également définir les indicateurs de champ bit suivants pour indiquer la prise en charge d’autres segments :
CpuVisible pour indiquer que le segment est accessible au processeur.
CacheCoherent pour indiquer que le segment conserve la cohérence du cache avec l’UC pour les pages vers lesquelles le segment redirige.
La figure suivante montre une représentation visuelle d’un segment d’espace d’ouverture linéaire.