Compartilhar via


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.

Nota Quando DxgkDdiRender é chamado, o driver de miniporta de exibição deve validar o buffer. Consulte Comentários em DxgkDdiRender para obter informações importantes sobre como o driver deve acessar esse membro.
 

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

Nota Quando DxgkDdiRender é chamado, o driver de miniporta de exibição deve validar o buffer. Consulte Comentários em DxgkDdiRender para obter informações importantes sobre como o driver deve acessar esse membro.
 

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

Confira também

D3DDDI_PATCHLOCATIONLIST

DXGK_ALLOCATIONLIST

DxgkDdiRender

DxgkDdiRenderKm

pfnRenderCb