Partager via


DXGK_CONTEXTINFO structure (d3dkmddi.h)

La structure DXGK_CONTEXTINFO décrit un contexte d’appareil.

Syntaxe

typedef struct _DXGK_CONTEXTINFO {
  UINT                  DmaBufferSize;
  UINT                  DmaBufferSegmentSet;
  UINT                  DmaBufferPrivateDataSize;
  UINT                  AllocationListSize;
  UINT                  PatchLocationListSize;
  UINT                  Reserved;
  DXGK_CONTEXTINFO_CAPS Caps;
  ULONG                 PagingCompanionNodeId;
} DXGK_CONTEXTINFO;

Membres

DmaBufferSize

Taille, en octets, de la mémoire tampon des commandes matérielles envoyées via l’accès direct à la mémoire (DMA) à l’unité de traitement graphique (GPU).

La mémoire tampon DMA peut croître et diminuer après la création du contexte ; Toutefois, la mémoire tampon DMA ne peut jamais réduire la taille de départ spécifiée par DmaBufferSize .

DmaBufferSegmentSet

Identificateurs des segments où la mémoire tampon DMA doit être rendue accessible au GPU.

DmaBufferPrivateDataSize

Taille, en octets, de la structure de données privées résidente du pilote associée à chaque mémoire tampon DMA. La mémoire de cette structure de données privée est allouée à partir d’un pool non paginé. Si le pilote spécifie zéro dans DmaBufferPrivateDataSize, aucune mémoire n’est allouée à la structure de données privée.

La structure de données privées associée à une mémoire tampon DMA est initialisée à zéro lors de la création de la mémoire tampon DMA. Pendant la durée de vie de la mémoire tampon DMA, le gestionnaire de mémoire vidéo n’accède jamais à la structure de données privée associée à la mémoire tampon DMA.

AllocationListSize

Nombre initial d’éléments dans un tableau d’allocations (autrement dit, un tableau de structures DXGK_ALLOCATIONLIST ). Ce nombre est le nombre initial d’allocations que le pilote demande à être dans les membres pAllocationList des structures DXGKARG_PRESENT et DXGKARG_RENDER dans les appels aux fonctions DxgkDdiPresent et DxgkDdiRender du pilote, respectivement.

La liste d’allocations peut croître et diminuer après la création du contexte ; Toutefois, la liste d’allocations ne peut jamais être inférieure à la taille de départ spécifiée par AllocationListSize .

Note Si DXGK_CREATECONTEXTFLAGS. GdiContext est défini sur 1, ce qui signifie que le contexte est créé en tant que contexte spécifique À GDI, AllocationListSize doit être défini sur une valeur de 256.
 

PatchLocationListSize

Nombre initial d’éléments dans un tableau d’emplacements de correctifs (autrement dit, un tableau de structures D3DDDI_PATCHLOCATIONLIST ) pour l’appareil en mode utilisateur et en mode noyau. Ce nombre est le nombre initial d’emplacements de correctifs que le pilote demande à être dans les membres pPatchLocationListIn des structures DXGKARG_RENDER dans les appels à sa fonction DxgkDdiRender .

La liste des emplacements des correctifs peut croître et se réduire une fois le contexte créé ; Toutefois, la liste d’emplacements des correctifs ne peut jamais être inférieure à la taille de départ spécifiée par PatchLocationListSize .

Reserved

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

Ce membre est disponible à partir de Windows 7.

Caps

Décrit les fonctionnalités facultatives prises en charge par le contexte.

Pris en charge à partir de Windows 10.

PagingCompanionNodeId

Spécifie l’identificateur de moteur de base zéro du moteur à utiliser pour ce compagnon de pagination de contexte.

Pris en charge à partir de Windows 10.

Remarques

Un pilote de miniport d’affichage spécifie des valeurs pour les membres DmaBufferSize et AllocationListSize afin de garantir que :

  • Le sous-système graphique Microsoft DirectX peut utiliser une seule mémoire tampon d’accès direct à la mémoire (DMA) pour afficher (à l’aide de la fonction DxgkDdiPresent du pilote miniport d’affichage) au moins une structure RECT pour tous les scénarios.
  • Les tailles des mémoires tampons DMA et allocation-list sont suffisamment grandes pour contenir au moins une commande qui ne peut pas être fractionnée entre plusieurs mémoires tampons.
  • Les tailles des mémoires tampons DMA et de liste d’allocation sont suffisamment grandes pour éviter la surcharge d’installation et DMA.
Le pilote de miniport d’affichage peut spécifier uniquement des segments d’ouverture dans le membre DmaBufferSegmentSet ; si le pilote spécifie un segment de mémoire, un échec de création de contexte se produit.

Si le pilote définit DmaBufferSegmentSet sur 0, le gestionnaire de mémoire vidéo alloue une mémoire contiguë paginée, qui est mappée mémoire combinée en écriture, pour les mémoires tampons DMA. Par conséquent, le GPU doit accéder aux mémoires tampons DMA à l’aide de cycles PCI sur les ordinateurs où les transferts AGP qui se produisent en dehors de l’ouverture AGP ne sont pas autorisés.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista
En-tête d3dkmddi.h (include D3dkmddi.h)

Voir aussi

D3DDDI_PATCHLOCATIONLIST

DXGKARG_CREATECONTEXT

DXGKARG_PRESENT

DXGKARG_RENDER

DXGK_ALLOCATIONLIST

DXGK_CREATECONTEXTFLAGS

DxgkDdiPresent

DxgkDdiRender

RECT