Partager via


structure DXGK_SEGMENTDESCRIPTOR3 (d3dkmddi.h)

La structure DXGK_SEGMENTDESCRIPTOR3 contient des informations sur un segment pris en charge par le pilote composé de la mémoire réservée BIOS (qui est vidée pendant une transition vers un état de faible alimentation) et de la mémoire réservée au pilote.

Syntaxe

typedef struct _DXGK_SEGMENTDESCRIPTOR3 {
  [out] DXGK_SEGMENTFLAGS Flags;
  [out] PHYSICAL_ADDRESS  BaseAddress;
  [out] PHYSICAL_ADDRESS  CpuTranslatedAddress;
  [out] SIZE_T            Size;
  [out] UINT              NbOfBanks;
  [out] SIZE_T            *pBankRangeTable;
  [out] SIZE_T            CommitLimit;
        SIZE_T            SystemMemoryEndAddress;
        SIZE_T            Reserved;
} DXGK_SEGMENTDESCRIPTOR3;

Membres

[out] Flags

Structure DXGK_SEGMENTFLAGS qui identifie les propriétés, dans les indicateurs de champ binaire, pour le segment.

Notez que pour un segment d’ouverture de type AGP, le pilote doit définir exclusivement le Agp membre de la structure dans l’union contenant DXGK_SEGMENTFLAGS. Bien que le segment d’ouverture de type AGP soit une ouverture et soit accessible au processeur, si d’autres membres sont définis, l’adaptateur ne parvient pas à initialiser.

[out] BaseAddress

Adresse de base du segment, telle que déterminée par l’unité de traitement graphique (GPU). L’adresse physique d’une allocation que le gestionnaire de mémoire vidéo paginée dans le segment est affectée à une adresse GPU qui est décalée de l’adresse de base qui BaseAddress spécifie.

Le gestionnaire de mémoire vidéo ignore l’adresse de base des segments d’ouverture de type AGP (où l’indicateur Agp bit-field est spécifié dans les indicateurs de membre) et utilise plutôt l’adresse physique réelle du segment dans l’ouverture AGP, comme déterminé sur le bus où se trouve le GPU. Dans ce cas, le pilote peut utiliser des adresses générées par le gestionnaire de mémoire vidéo pour l’allocation directement sans nécessiter de traduction.

[out] CpuTranslatedAddress

Adresse de base du segment, par rapport au bus sur lequel le GPU est connecté. Par exemple, lorsque le GPU est connecté sur le bus PCI, CpuTranslatedAddress est l’adresse de base de la plage utilisable spécifiée par un registre d’adresses de base PCI (BAR). Le pilote spécifie cette adresse uniquement si elle spécifie un segment accessible par l’UC en définissant l’indicateur cpuVisible champ bit dans le membre Indicateurs.

Ce membre est ignoré pour les segments d’ouverture, y compris le segment d’ouverture de type AGP. La seule exception se produit lorsque le pilote d’affichage en mode utilisateur n’a pas configuré une autre adresse virtuelle pour une allocation principale (autrement dit, lorsque le pilote n’a pas défini UseAlternateVA dans les indicateurs membre de la structure D3DDDICB_LOCKFLAGS lors d’un appel à la fonction pfnLockCb).

Avant que le gestionnaire de mémoire vidéo mappe une adresse virtuelle à la plage physique, le gestionnaire de mémoire vidéo traduit cette adresse physique en fonction de la vue processeur du bus et informe le pilote de l’opération afin que le pilote puisse configurer une ouverture pour accéder au contenu du segment à l’emplacement spécifié.

[out] Size

Taille, en octets, du segment. Cette taille doit être un multiple de la taille de page hôte native (par exemple, 4 Ko sur l’architecture x86).

Pour les segments d’ouverture de type AGP (où le indicateur de champ de bits est spécifié dans le indicateurs membre), le gestionnaire de mémoire vidéo alloue autant d’espace d’ouverture que possible, de sorte que ce membre est ignoré.

[out] NbOfBanks

Le nombre de banques dans le segment, si la banque est utilisée (autrement dit, si l’indicateur UseBanking bit-field est défini dans les indicateurs membre).

[out] pBankRangeTable

Tableau de valeurs qui indique les plages qui délimitent chaque banque du segment. Le pilote spécifie ce tableau uniquement s’il définit également l’indicateur UseBanking bit-field dans le membre Flags.

Le tableau spécifie les adresses de fin de la première banque par le biais du NbOfBanksième banque (autrement dit, les décalages de fin dans le segment pour chaque banque). Notez les points suivants :

  • Les banques sont contiguës.

  • La première banque commence au décalage zéro du segment.

  • La dernière banque se termine à la fin du segment, de sorte que le conducteur n’est pas tenu de spécifier l’adresse de fin de la dernière banque.

[out] CommitLimit

Nombre maximal d’octets pouvant être validés sur le segment. Pour un segment de mémoire, la limite de validation est toujours identique à la taille du segment, qui est spécifiée dans le membre Taille. Pour un segment d’ouverture, le pilote peut limiter la quantité de mémoire qui peut être validée sur le segment sur les systèmes avec de petites quantités de mémoire physique.

SystemMemoryEndAddress

Pour les segments partiellement composés de mémoire système, toutes les allocations qui commencent après cette adresse sont purgées dans une transition vers un état de veille prolongée. Allocations qui existent entièrement dans la mémoire système, où l’adresse du segment est inférieure ou égale à SystemMemoryEndAddress, ne sont pas supprimées dans cette transition.

Le pilote de miniport d’affichage doit définir ce membre sur une valeurNULL non si le segment est partiellement conservé dans une transition vers un état de mise en veille prolongée, auquel cas le membre PartiellementPreservedDuringHibernate membre de la structure DXGK_SEGMENTFLAGS doit être défini.

La mémoire réservée au pilote s’exécute à partir de l’adresse de segment 0 à SystemMemoryEndAddress, inclus. La mémoire réservée bios s’exécute à partir de (SystemMemoryEndAddress+1) jusqu’à la fin du segment.

Reserved

Ce membre est réservé et doit être défini sur zéro.

Remarques

Cette structure est utilisée par un pilote miniport en mode noyau WDDM 1.2 ou version ultérieure pour retourner des informations sur les segments de mémoire en réponse à un DxgkDdiQueryAdapterInfo appel de fonction dans lequel le sous-système graphique spécifie la valeur DXGKQAITYPE_QUERYSEGMENT3 dans le membre Type de la structure DXGKARG_QUERYADAPTERINFO.

Cette structure est pointée par le pSegmentDescriptor membre de la structure DXGK_QUERYSEGMENTOUT3.

Exigences

Exigence Valeur
client minimum pris en charge Windows 8
serveur minimum pris en charge Windows Server 2012
d’en-tête d3dkmddi.h

Voir aussi

D3DDDICB_LOCKFLAGS

DXGKARG_QUERYADAPTERINFO

DXGK_QUERYSEGMENTOUT3

DXGK_SEGMENTFLAGS

DxgkDdiQueryAdapterInfo