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.
[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 .
[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) |