structure DXGKARG_SUBMITCOMMAND (d3dkmddi.h)

La structure DXGKARG_SUBMITCOMMAND décrit la mémoire tampon DMA qu’un pilote de miniport d’affichage (KMD) envoie à l’unité d’exécution de commandes matérielles pendant un appel à sa fonction DxgkDdiSubmitCommand .

Syntaxe

typedef struct _DXGKARG_SUBMITCOMMAND {
  union {
    HANDLE hDevice;
    HANDLE hContext;
  };
  UINT                           DmaBufferSegmentId;
  PHYSICAL_ADDRESS               DmaBufferPhysicalAddress;
  UINT                           DmaBufferSize;
  UINT                           DmaBufferSubmissionStartOffset;
  UINT                           DmaBufferSubmissionEndOffset;
  VOID                           *pDmaBufferPrivateData;
  UINT                           DmaBufferPrivateDataSize;
  UINT                           DmaBufferPrivateDataSubmissionStartOffset;
  UINT                           DmaBufferPrivateDataSubmissionEndOffset;
  UINT                           SubmissionFenceId;
  D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId;
  D3DDDI_FLIPINTERVAL_TYPE       FlipInterval;
  DXGK_SUBMITCOMMANDFLAGS        Flags;
  UINT                           EngineOrdinal;
  D3DGPU_VIRTUAL_ADDRESS         DmaBufferVirtualAddress;
  UINT                           NodeOrdinal;
} DXGKARG_SUBMITCOMMAND;

Membres

hDevice

[in] Si le pilote n’est pas conscient de plusieurs moteurs (autrement dit, le pilote ne prend pas en charge la création de contexte), hDevice est un handle pour l’appareil d’affichage (contexte graphique) à partir duquel la demande de soumission provient. Un handle d’appareil est fourni à la fonction DxgkDdiSubmitCommand du pilote dans l’union qui DXGKARG_SUBMITCOMMAND contient.

Pour certaines opérations de pagination, hDevice est NULL (par exemple, les opérations de pagination qui suppriment le contenu de la mémoire tampon d’image entière pendant la gestion de l’alimentation). Les opérations de pagination sont indiquées par l’indicateur de champ bit pagination dans le membre Indicateurs .

hContext

[in] Si le pilote est conscient de plusieurs moteurs (autrement dit, le pilote prend en charge la création de contexte), un handle vers le contexte d’appareil dont la demande de soumission provient. Un handle de contexte est fourni à la fonction DxgkDdiSubmitCommand du pilote dans l’union qui DXGKARG_SUBMITCOMMAND contient.

Pour certaines opérations de pagination, hContext est NULL (par exemple, les opérations de pagination qui suppriment le contenu de la mémoire tampon d’image entière pendant la gestion de l’alimentation). Les opérations de pagination sont indiquées par l’indicateur de champ bit pagination dans le membre Indicateurs .

DmaBufferSegmentId

[in] Identificateur du segment de mémoire dans lequel la mémoire tampon DMA a été paginée.

L’identificateur peut être égal à zéro si le pilote n’a pas indiqué de mapper la mémoire tampon DMA dans le segment en définissant le membre DmaBufferSegmentSet de la structure DXGK_CONTEXTINFO sur 0 dans un appel à la fonction DxgkDdiCreateContext du pilote. Si DmaBufferSegmentId est égal à zéro, la mémoire tampon DMA a été allouée en tant que bloc contigu de mémoire système.

DmaBufferPhysicalAddress

[in] Type de données PHYSICAL_ADDRESS (qui est défini comme LARGE_INTEGER) qui indique l’adresse physique dans laquelle la mémoire tampon DMA a été paginée.

Si DmaBufferSegmentId est égal à zéro, DmaBufferPhysicalAddress est l’adresse physique dans la mémoire système où se trouve la mémoire tampon DMA.

Si DmaBufferSegmentId n’est pas zéro, DmaBufferPhysicalAddress est l’adresse physique du segment pour la mémoire tampon DMA ; autrement dit, l’adresse pointe vers une adresse physique du segment d’ouverture qui est un espace d’adressage contigu défini dans la mémoire physique (DXGK_SEGMENTDESCRIPTOR. BaseAddress + DmaBuffer.SegmentOffset).

Notez que DmaBufferPhysicalAddress fait toujours référence au début de la mémoire tampon DMA, même si le pilote peut être nécessaire pour corriger ou soumettre une section de la mémoire tampon DMA qui n’inclut pas le début de la mémoire tampon DMA (autrement dit, si le membre DmaBufferSubmissionStartOffset n’est pas zéro).

DmaBufferSize

[in] Taille, en octets, de la mémoire tampon DMA.

DmaBufferSize représente toute la longueur de la mémoire tampon DMA ; Toutefois, la demande de correction ou de soumission peut faire référence à une partie de la mémoire tampon DMA uniquement.

DmaBufferSubmissionStartOffset

[in] Offset, en octets, du début de la mémoire tampon DMA au début de la partie de la mémoire tampon DMA qui nécessite la mise à jour corrective ou l’envoi. Le décalage reçu au moment du correctif correspond au décalage reçu au moment de l’envoi.

DmaBufferSubmissionEndOffset

[in] Décalage, en octets, du début de la mémoire tampon DMA à la fin de la partie de la mémoire tampon DMA qui nécessite la mise à jour corrective ou l’envoi. Le décalage reçu au moment du correctif correspond au décalage reçu au moment de l’envoi.

pDmaBufferPrivateData

[in] Pointeur vers les données privées résidentes du pilote associées à la mémoire tampon DMA qui a été remplie pendant la fonction DxgkDdiRender, DxgkDdiPresent ou DxgkDdiPatch .

Pour les opérations de pagination, une seule mémoire tampon de pagination est utilisée pour plusieurs soumissions indépendantes. Dans ce scénario, le pilote peut indiquer- en retournant le pointeur de données de pilote privé approprié dans un appel à sa fonction DxgkDdiBuildPagingBuffer pour avoir une plage de données privée de pilote unique pour toutes les soumissions ou une pour chaque soumission.

DmaBufferPrivateDataSize

[in] Taille des données du pilote privé vers laquelle pDmaBufferPrivateData pointe vers, en octets.

DmaBufferPrivateDataSize représente toute la longueur de la mémoire tampon de données du pilote privé ; toutefois, la partie associée à la soumission actuelle peut être plus petite.

KMD ne doit pas valider les données privées lorsque ce membre est égal à zéro.

DmaBufferPrivateDataSubmissionStartOffset

[in] Offset, en octets, du début des données privées de mémoire tampon DMA que pDmaBufferPrivateData spécifie au début de la partie des données privées associées à la soumission actuelle. DmaBufferPrivateDataSubmissionStartOffset est toujours égal à zéro pour une requête sans mise en garde.

DmaBufferPrivateDataSubmissionEndOffset

[in] Offset, en octets, du début des données privées de mémoire tampon DMA que pDmaBufferPrivateData spécifie à la fin de la partie des données privées associées à la soumission actuelle.

SubmissionFenceId

[in] Identificateur unique que le pilote peut écrire dans la commande de clôture dans la mémoire tampon en anneau, qui est la mémoire tampon où les mémoires tampons DMA sont mises en file d’attente pour que l’unité de traitement graphique (GPU) s’exécute. Pour plus d’informations sur ces types d’identificateurs, consultez Identificateurs de clôture d’approvisionnement.

VidPnSourceId

[in] Numéro d’identification de base zéro de la vidéo présente la source dans un chemin d’accès d’une topologie de réseau présent vidéo (VidPN) pour une opération de retournement. Ce membre est valide uniquement lorsque l’indicateur Flip ou FlipWithNoWait indicateur de champ binaire est défini dans le membre indicateurs.

FlipInterval

[in] Valeur D3DDDI_FLIPINTERVAL_TYPE-typée qui indique l’intervalle de retour (autrement dit, si le retour se produit après zéro, un, deux, trois ou quatre synchronisations verticales). FlipInterval n’est valide que si l’indicateur de champ bit est défini (autrement dit, TRUE) dans le membre Indicateurs.

Flags

[in] Structure DXGK_SUBMITCOMMANDFLAGS qui identifie les informations relatives à la mémoire tampon DMA à envoyer.

EngineOrdinal

[in] Réservé pour une future utilisation.

DmaBufferVirtualAddress

Ce membre est réservé et doit être défini sur zéro. Prise en charge à partir de Windows 7.

NodeOrdinal

Index de base zéro du nœud pour lequel le contexte est créé. Identifie le nœud lorsque le contexte est NULL. Prise en charge à partir de Windows 8.

Remarques

La fonction DxgkDdiSubmitCommand du pilote DxgkDdiSubmitCommand d’affichage doit être consciente que plusieurs processus peuvent accéder à l’objet d’appareil spécifié par le membre hDevice en même temps.

Spécifications

Besoin Valeur
Client minimum requis Windows Vista (WDDM 1.0)
En-tête d3dkmddi.h (include D3dkmddi.h)

Voir aussi

D3DDDI_FLIPINTERVAL_TYPE

DXGK_CONTEXTINFO

DXGK_SUBMITCOMMANDFLAGS

DxgkCbNotifyDpc

DxgkCbNotifyInterrupt

DxgkDdiBuildPagingBuffer

DxgkDdiCreateContext

DxgkDdiPatch

DxgkDdiPresent

DxgkDdiRender

DxgkDdiSubmitCommand