Share via


struttura DXGKARG_RENDER (d3dkmddi.h)

La struttura DXGKARG_RENDER descrive i membri per la generazione di un buffer DMA (Direct Memory Access) da un buffer dei comandi.

Sintassi

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;

Members

[in] pCommand

Puntatore all'inizio del buffer dei comandi.

Nota Quando viene chiamato DxgkDdiRender , il driver miniport di visualizzazione deve convalidare il buffer. Per informazioni importanti sul modo in cui il driver deve accedere a questo membro, vedi Osservazioni in DxgkDdiRender .
 

[in] CommandLength

Dimensione, in byte, del buffer dei comandi a cui pCommand punta.

[out] pDmaBuffer

Puntatore all'inizio del buffer DMA, allineato a 4 KB. Questo buffer può essere inviato tramite DMA all'hardware grafico. Prima che il driver miniport di visualizzazione torni dalle funzioni DxgkDdiRender o DxgkDdiRenderKm , il driver deve impostare pDmaBuffer sul byte vuoto successivo che segue l'ultimo byte a cui il driver ha scritto o il driver deve puntare alla posizione (un byte oltre lo spazio del buffer) se non è disponibile più spazio. Questa posizione sarebbe stata corretta se il buffer fosse sufficientemente grande.

[in] DmaSize

Dimensioni, in byte, del buffer DMA a cui punta pDmaBuffer .

[in] pDmaBufferPrivateData

Puntatore a una struttura di dati privati residenti nel driver usata per generare il buffer DMA a cui pDmaBuffer punta.

[in] DmaBufferPrivateDataSize

Numero di byte che rimangono nella struttura di dati privati a cui pDmaBufferPrivateData punta per l'operazione corrente.

[in] pAllocationList

Matrice di strutture DXGK_ALLOCATIONLIST per l'elenco di allocazioni a cui fa riferimento il buffer DMA. Ogni allocazione a cui viene fatto riferimento deve essere visualizzata una volta per ottenere prestazioni ottimali.

[in] AllocationListSize

Numero disponibile di elementi nella matrice specificata da pAllocationList , che rappresenta il numero di specifiche di allocazione da inviare tramite DMA all'hardware grafico.

[in] pPatchLocationListIn

Matrice di strutture D3DDDI_PATCHLOCATIONLIST per l'elenco patch-location fornito dal driver di visualizzazione in modalità utente in una chiamata alla funzione pfnRenderCb .

Nota Quando viene chiamato DxgkDdiRender , il driver miniport di visualizzazione deve convalidare il buffer. Per informazioni importanti sul modo in cui il driver deve accedere a questo membro, vedi Osservazioni in DxgkDdiRender .
 

[in] PatchLocationListInSize

Numero di elementi nell'elenco patch-location specificato da pPatchLocationListIn .

[in/out] pPatchLocationListOut

Matrice di strutture D3DDDI_PATCHLOCATIONLIST per l'elenco patch-location in cui viene compilato il driver miniport visualizzato. Prima che il driver torni da una chiamata alle funzioni DxgkDdiRender o DxgkDdiRenderKm , il driver deve impostare pPatchLocationListOut sul successivo elemento D3DDDI_PATCHLOCATIONLIST che segue l'ultimo elemento D3DDDI_PATCHLOCATIONLIST aggiornato dal driver.

[in] PatchLocationListOutSize

Numero di elementi nell'elenco patch-location specificato da pPatchLocationListOut . Il driver miniport di visualizzazione non è necessario per riempire tutti gli elementi nell'intero elenco; il driver deve usare solo gli elementi necessari per descrivere il percorso della patch all'interno del buffer DMA.

[in/out] MultipassOffset

Valore UINT che specifica lo stato di avanzamento dell'operazione di rendering se le funzioni DxgkDdiRender o DxgkDdiRenderKm del driver display miniport devono restituire STATUS_GRAPHICS_INSUFFICIENT_DMA_BUFFER per ottenere un nuovo buffer DMA. Quando la funzione DxgkDdiRender o DxgkDdiRenderKm del driver viene prima chiamata con un nuovo buffer di comando, MultipassOffset viene inizializzato su zero. Prima che il driver torni dalle chiamate DxgkDdiRender o DxgkDdiRenderKm , il driver imposta questo membro per mostrare lo stato di avanzamento della traduzione per la successiva chiamata DxgkDdiRender o DxgkDdiRenderKm con lo stesso buffer di comando. Il sottosistema kernel grafico DirectX non modifica ulteriormente il valore.

[in] DmaBufferSegmentId

Identificatore del segmento di memoria in cui è stato eseguito il paging del buffer DMA. Se l'identificatore è zero, il buffer DMA non viene eseguito correttamente il paging.

[in] DmaBufferPhysicalAddress

Tipo di dati PHYSICAL_ADDRESS (definito come LARGE_INTEGER) che indica l'indirizzo fisico in cui è stato eseguito il paging del buffer DMA. Se l'indirizzo fisico è zero, il buffer DMA non viene eseguito correttamente il paging.

Commenti

Il supporto per la funzione DxgkDdiRenderKm viene aggiunto a partire da Windows 7 per le schede di visualizzazione che supportano l'accelerazione hardware GDI.

Requisiti

Requisito Valore
Client minimo supportato Windows Vista
Intestazione d3dkmddi.h (include D3dkmddi.h)

Vedi anche

D3DDDI_PATCHLOCATIONLIST

DXGK_ALLOCATIONLIST

DxgkDdiRender

DxgkDdiRenderKm

pfnRenderCb