estrutura DXGKARG_RENDER (d3dkmddi.h)
A estrutura DXGKARG_RENDER descreve os membros para gerar um buffer de DMA (acesso direto à memória) de um buffer de comando.
Sintaxe
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;
Membros
[in] pCommand
Um ponteiro para o início do buffer de comando.
[in] CommandLength
O tamanho, em bytes, do buffer de comando para o qual pCommand aponta.
[out] pDmaBuffer
Um ponteiro para o início do buffer de DMA, que está alinhado em 4 KB. Esse buffer pode ser enviado por meio de DMA para o hardware gráfico. Antes que o driver de miniporta de exibição retorne das funções DxgkDdiRender ou DxgkDdiRenderKm , o driver deve definir pDmaBuffer para o próximo byte vazio que segue o último byte no qual o driver escreveu ou o driver deve apontar para o local (um byte além do espaço no buffer) se não houver mais espaço disponível. Esse local estaria correto se o buffer fosse grande o suficiente.
[in] DmaSize
O tamanho, em bytes, do buffer de DMA para o qual pDmaBuffer aponta.
[in] pDmaBufferPrivateData
Um ponteiro para uma estrutura de dados privados residente no driver que é usada para gerar o buffer de DMA para o qual o pDmaBuffer aponta.
[in] DmaBufferPrivateDataSize
O número de bytes que permanecem na estrutura de dados privados para a qual pDmaBufferPrivateData aponta para a operação atual.
[in] pAllocationList
Uma matriz de estruturas DXGK_ALLOCATIONLIST para a lista de alocações referenciadas pelo buffer de DMA. Cada alocação referenciada deve aparecer uma vez para obter o desempenho ideal.
[in] AllocationListSize
O número disponível de elementos na matriz especificada por pAllocationList , que representa o número de especificações de alocação a serem enviadas por meio de DMA para o hardware gráfico.
[in] pPatchLocationListIn
Uma matriz de estruturas D3DDDI_PATCHLOCATIONLIST para a lista de locais de patch que o driver de exibição do modo de usuário fornece em uma chamada para a função pfnRenderCb .
[in] PatchLocationListInSize
O número de elementos na lista de locais de patch que pPatchLocationListIn especifica.
[in/out] pPatchLocationListOut
Uma matriz de estruturas D3DDDI_PATCHLOCATIONLIST para a lista de locais de patch que o driver de miniporto de exibição preenche. Antes que o driver retorne de uma chamada para suas funções DxgkDdiRender ou DxgkDdiRenderKm , o driver deve definir pPatchLocationListOut para o próximo elemento D3DDDI_PATCHLOCATIONLIST que segue o último elemento D3DDDI_PATCHLOCATIONLIST que o driver atualizou.
[in] PatchLocationListOutSize
O número de elementos na lista de locais de patch que pPatchLocationListOut especifica. O driver de miniporta de exibição não é necessário para preencher todos os elementos na lista inteira; o driver deve usar apenas os elementos necessários para descrever o local do patch dentro do buffer de DMA.
[in/out] MultipassOffset
Um valor UINT que especifica o progresso da operação de renderização se as funções DxgkDdiRender ou DxgkDdiRenderKm do driver de miniporta de exibição precisarem retornar STATUS_GRAPHICS_INSUFFICIENT_DMA_BUFFER para obter um novo buffer DMA. Quando a função DxgkDdiRender ou DxgkDdiRenderKm do driver é chamada pela primeira vez com um novo buffer de comando, MultipassOffset é inicializado como zero. Antes que o driver retorne das chamadas DxgkDdiRender ou DxgkDdiRenderKm , o driver define esse membro para mostrar o progresso da tradução para a chamada DxgkDdiRender ou DxgkDdiRenderKm subsequente com o mesmo buffer de comando. O subsistema de kernel de elementos gráficos DirectX não altera ainda mais o valor.
[in] DmaBufferSegmentId
O identificador do segmento de memória no qual o buffer de DMA foi paginado. Se o identificador for zero, o buffer de AMD não será paginado corretamente.
[in] DmaBufferPhysicalAddress
Um PHYSICAL_ADDRESS tipo de dados (que é definido como LARGE_INTEGER) que indica o endereço físico em que o buffer de DMA foi paginado. Se o endereço físico for zero, o buffer de AMD não será paginado corretamente.
Comentários
O suporte para a função DxgkDdiRenderKm é adicionado a partir do Windows 7 para adaptadores de vídeo que dão suporte à Aceleração de Hardware GDI.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista |
Cabeçalho | d3dkmddi.h (inclua D3dkmddi.h) |