Partager via


structure DXGK_CONTEXTINFO (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 réduire une fois le contexte créé ; Toutefois, la mémoire tampon DMA ne peut jamais réduire la taille de départ qui DmaBufferSize spécifie.

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ésident du pilote associée à chaque mémoire tampon DMA. La mémoire de cette structure de données privées 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 pour 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 lorsque la mémoire tampon DMA est créée. 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 de départ d’éléments dans un tableau d’allocations (autrement dit, tableau de structures DXGK_ALLOCATIONLIST). Ce nombre correspond au nombre de départ d’allocations que le pilote demande d’être dans les membres pAllocationList des structures DXGKARG_PRESENT et DXGKARG_RENDER dans les appels aux fonctions DxgkDdiPresent et fonctions DxgkDdiRender, respectivement.

La liste d’allocations peut augmenter et réduire une fois le contexte créé ; Toutefois, la liste d’allocations ne peut jamais réduire la taille de départ qui AllocationListSize spécifie.

remarque 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 la valeur 256.
 

PatchLocationListSize

Nombre de départ d’éléments dans un tableau d’emplacements de correctifs (c’est-à-dire un tableau de structures D3DDDI_PATCHLOCATIONLIST) pour l’appareil en mode utilisateur et en mode noyau. Ce nombre correspond au nombre de début d’emplacements de correctifs que le pilote demande d’être dans les membres pPatchLocationListIn des structures DXGKARG_RENDER dans les appels à sa fonction DxgkDdiRender.

La liste d’emplacements des correctifs peut croître et réduire une fois le contexte créé ; Toutefois, la liste d’emplacements de correctifs ne peut jamais réduire la taille de départ qui PatchLocationListSize spécifie.

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.

Prise 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.

Prise en charge à partir de Windows 10.

Remarques

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

  • Le sous-système graphique Microsoft DirectX ne peut utiliser qu’une seule mémoire tampon d’accès en mémoire directe (DMA) pour afficher (à l’aide du du pilote miniport d’affichage DxgkDdiPresent fonction) au moins un RECT structure pour tous les scénarios.
  • Les tailles des mémoires tampons DMA et de liste d’allocation sont suffisamment volumineuses pour contenir au moins une commande qui ne peut pas être fractionnée sur plusieurs mémoires tampons.
  • Les tailles des mémoires tampons DMA et de liste d’allocation sont suffisamment volumineuses pour éviter la surcharge d’installation et DMA.
Le pilote 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 la mémoire verrouillée par page contiguë, qui est mappée en 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.

Exigences

Exigence Valeur
client minimum pris en charge Windows Vista
d’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