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) |
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour