structure DXGKARG_RENDER (d3dkmddi.h)
La structure DXGKARG_RENDER décrit les membres pour générer une mémoire tampon d’accès direct à la mémoire (DMA) à 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.
[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, qui est alignée sur 4 Ko. Cette mémoire tampon peut être envoyée via DMA au matériel graphique. Avant que le pilote miniport d’affichage ne retourne à partir des fonctions DxgkDdiRender ou DxgkDdiRenderKm , le pilote doit définir pDmaBuffer sur l’octet vide suivant le dernier octet dans lequel 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.
[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 vers laquelle pDmaBuffer pointe.
[in] DmaBufferPrivateDataSize
Nombre d’octets restant dans la structure de données privée vers laquelle pDmaBufferPrivateData pointe pour l’opération en cours.
[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 d’éléments disponibles dans le tableau spécifié par pAllocationList , qui représente le nombre de spécifications d’allocation à envoyer via DMA au matériel graphique.
[in] pPatchLocationListIn
Tableau de D3DDDI_PATCHLOCATIONLIST structures pour la liste d’emplacement de correctif que le pilote d’affichage en mode utilisateur fournit dans un appel à la fonction pfnRenderCb .
[in] PatchLocationListInSize
Nombre d’éléments dans la liste d’emplacements correctifs spécifiés par pPatchLocationListIn .
[in/out] pPatchLocationListOut
Tableau de structures de D3DDDI_PATCHLOCATIONLIST pour la liste d’emplacements correctives que le pilote miniport d’affichage remplit. Avant que le pilote ne retourne d’un appel à ses fonctions DxgkDdiRender ou DxgkDdiRenderKm , le pilote doit définir pPatchLocationListOut sur l’élément D3DDDI_PATCHLOCATIONLIST suivant le dernier élément D3DDDI_PATCHLOCATIONLIST mis à jour.
[in] PatchLocationListOutSize
Nombre d’éléments dans la liste d’emplacements correctifs spécifiés par pPatchLocationListOut . Le pilote de 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 miniport d’affichage doivent retourner STATUS_GRAPHICS_INSUFFICIENT_DMA_BUFFER pour obtenir une nouvelle mémoire tampon DMA. Lorsque la fonction DxgkDdiRender ou DxgkDdiRenderKm du pilote est d’abord appelée avec une nouvelle mémoire tampon de commande, MultipassOffset est initialisé à zéro. Avant que le pilote ne retourne à partir des appels DxgkDdiRender ou DxgkDdiRenderKm , le pilote définit ce membre pour afficher la progression de la traduction pour les appels DxgkDdiRender ou DxgkDdiRenderKm suivants 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 dans.
[in] DmaBufferPhysicalAddress
Un PHYSICAL_ADDRESS type de données (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 dans.
Remarques
La prise en charge de la fonction DxgkDdiRenderKm est ajoutée à partir de Windows 7 pour les cartes d’affichage qui prennent en charge l’accélération matérielle GDI.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows Vista |
En-tête | d3dkmddi.h (inclure D3dkmddi.h) |