Lire en anglais

Partager via


structure DXGKARG_RENDER (d3dkmddi.h)

La structure DXGKARG_RENDER décrit les membres pour générer une mémoire tampon DMA (Direct Memory Access) à partir d’une mémoire tampon de commande.

Syntaxe

typedef struct _DXGKARG_RENDER {
  [in]     const VOID               *pCommand;
  [in]     UINT                     CommandLength;
  [out]    VOID                     *pDmaBuffer;
  [in]     UINT                     DmaSize;
  [in]     VOID                     *pDmaBufferPrivateData;
  [in]     UINT                     DmaBufferPrivateDataSize;
  [in]     DXGK_ALLOCATIONLIST      *pAllocationList;
  [in]     UINT                     AllocationListSize;
  [in]     D3DDDI_PATCHLOCATIONLIST *pPatchLocationListIn;
  [in]     UINT                     PatchLocationListInSize;
  [in/out] D3DDDI_PATCHLOCATIONLIST *pPatchLocationListOut;
  [in]     UINT                     PatchLocationListOutSize;
  [in/out] UINT                     MultipassOffset;
  [in]     UINT                     DmaBufferSegmentId;
  [in]     PHYSICAL_ADDRESS         DmaBufferPhysicalAddress;
} DXGKARG_RENDER;

Membres

[in] pCommand

Pointeur vers le début de la mémoire tampon de commande.

Remarque Lorsque DxgkDdiRender est appelé, le pilote de miniport d’affichage doit valider la mémoire tampon. Consultez les remarques dans DxgkDdiRender pour obtenir des informations importantes sur la façon dont le pilote doit accéder à ce membre.
 

[in] CommandLength

Taille, en octets, de la mémoire tampon de commande vers laquelle pCommand pointe.

[out] pDmaBuffer

Pointeur vers le début de la mémoire tampon DMA, aligné sur 4 Ko. Cette mémoire tampon peut être envoyée via DMA au matériel graphique. Avant le retour du pilote miniport d’affichage à partir des fonctions DxgkDdiRender ou DxgkDdiRenderKm, le pilote doit définir pDmaBuffer sur l’octet vide suivant le dernier octet auquel le pilote a écrit, ou le pilote doit pointer vers l’emplacement (un octet au-delà de l’espace tampon) si aucun espace supplémentaire n’est disponible. Cet emplacement aurait été correct si la mémoire tampon était suffisamment grande.

[in] DmaSize

Taille, en octets, de la mémoire tampon DMA vers laquelle pDmaBuffer pointe vers.

[in] pDmaBufferPrivateData

Pointeur vers une structure de données privées résidente du pilote utilisée pour générer la mémoire tampon DMA qui pDmaBuffer pointe vers.

[in] DmaBufferPrivateDataSize

Nombre d’octets qui restent dans la structure de données privée qui pDmaBufferPrivateData pointe vers l’opération actuelle.

[in] pAllocationList

Tableau de structures DXGK_ALLOCATIONLIST pour la liste des allocations référencées par la mémoire tampon DMA. Chaque allocation référencée doit apparaître une fois pour des performances optimales.

[in] AllocationListSize

Nombre disponible d’éléments dans le tableau qui pAllocationList spécifie, qui représente le nombre de spécifications d’allocation à envoyer via DMA au matériel graphique.

[in] pPatchLocationListIn

Tableau de structures D3DDDI_PATCHLOCATIONLIST pour la liste d’emplacements correctives que le pilote d’affichage en mode utilisateur fournit dans un appel à la fonction pfnRenderCb.

Remarque Lorsque DxgkDdiRender est appelé, le pilote de miniport d’affichage doit valider la mémoire tampon. Consultez les remarques dans DxgkDdiRender pour obtenir des informations importantes sur la façon dont le pilote doit accéder à ce membre.
 

[in] PatchLocationListInSize

Nombre d’éléments dans la liste d’emplacements de correctifs qui pPatchLocationListIn spécifie.

[in/out] pPatchLocationListOut

Tableau de structures D3DDDI_PATCHLOCATIONLIST pour la liste d’emplacements de correctifs que le pilote miniport d’affichage remplit. Avant que le pilote ne retourne d’un appel à son DxgkDdiRender ou fonctions DxgkDdiRenderKm, le pilote doit définir pPatchLocationListOut à l’élément D3DDDI_PATCHLOCATIONLIST suivant le dernier élément D3DDDI_PATCHLOCATIONLIST mis à jour par le pilote.

[in] PatchLocationListOutSize

Nombre d’éléments dans la liste d’emplacements de correctifs qui pPatchLocationListOut spécifie. Le pilote miniport d’affichage n’est pas nécessaire pour remplir tous les éléments de la liste entière ; le pilote doit utiliser uniquement les éléments nécessaires pour décrire l’emplacement du correctif dans la mémoire tampon DMA.

[in/out] MultipassOffset

Valeur UINT qui spécifie la progression de l’opération de rendu si les fonctions DxgkDdiRender ou DxgkDdiRenderKm du pilote d’affichage doivent retourner STATUS_GRAPHICS_INSUFFICIENT_DMA_BUFFER pour obtenir une nouvelle mémoire tampon DMA. Lorsque la fonction DxgkDdiRender du pilote ou fonction DxgkDdiRenderKm est d’abord appelée avec une nouvelle mémoire tampon de commande, MultipassOffset est initialisée à zéro. Avant le retour du pilote à partir des appels DxgkDdiRender ou DxgkDdiRenderKm, le pilote définit ce membre pour afficher la progression de la traduction pour les DxgkDdiRender ou appel DxgkDdiRenderKm avec la même mémoire tampon de commande. Le sous-système du noyau graphique DirectX ne modifie pas davantage la valeur.

[in] DmaBufferSegmentId

Identificateur du segment de mémoire dans lequel la mémoire tampon DMA a été paginée. Si l’identificateur est égal à zéro, la mémoire tampon DMA n’est pas correctement paginée.

[in] DmaBufferPhysicalAddress

Type de données PHYSICAL_ADDRESS (défini comme LARGE_INTEGER) qui indique l’adresse physique dans laquelle la mémoire tampon DMA a été paginée. Si l’adresse physique est égale à zéro, la mémoire tampon DMA n’est pas correctement paginée.

Remarques

La prise en charge de la fonction DxgkDdiRenderKm est ajoutée à partir de Windows 7 pour les adaptateurs d’affichage qui prennent en charge accélération matérielle GDI.

Exigences

Exigence Valeur
client minimum pris en charge Windows Vista
d’en-tête d3dkmddi.h (include D3dkmddi.h)

Voir aussi

D3DDDI_PATCHLOCATIONLIST

DXGK_ALLOCATIONLIST

DxgkDdiRender

DxgkDdiRenderKm

pfnRenderCb