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.
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;
[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, 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.
[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.
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.
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows Vista |
d’en-tête | d3dkmddi.h (include D3dkmddi.h) |