Share via


estrutura DXGK_CONTEXTINFO (d3dkmddi.h)

A estrutura DXGK_CONTEXTINFO descreve um contexto de dispositivo.

Sintaxe

typedef struct _DXGK_CONTEXTINFO {
  UINT                  DmaBufferSize;
  UINT                  DmaBufferSegmentSet;
  UINT                  DmaBufferPrivateDataSize;
  UINT                  AllocationListSize;
  UINT                  PatchLocationListSize;
  UINT                  Reserved;
  DXGK_CONTEXTINFO_CAPS Caps;
  ULONG                 PagingCompanionNodeId;
} DXGK_CONTEXTINFO;

Membros

DmaBufferSize

O tamanho, em bytes, do buffer de comandos de hardware enviados por meio de DMA (acesso direto à memória) para a GPU (unidade de processamento gráfico).

O buffer de DMA pode crescer e diminuir após a criação do contexto; no entanto, o buffer de DMA nunca pode reduzir menor do que o tamanho inicial especificado por DmaBufferSize .

DmaBufferSegmentSet

Os identificadores dos segmentos em que o buffer de DMA deve ser disponibilizado para a GPU.

DmaBufferPrivateDataSize

O tamanho, em bytes, da estrutura de dados privados residente no driver associada a cada buffer de DMA. A memória dessa estrutura de dados privados é alocada do pool nãopagado. Se o driver especificar zero em DmaBufferPrivateDataSize, nenhuma memória será alocada para a estrutura de dados privados.

A estrutura de dados privados associada a um buffer de DMA é inicializada como zero quando o buffer de DMA é criado. Durante o tempo de vida do buffer de DMA, o gerenciador de memória de vídeo nunca acessa a estrutura de dados privada associada ao buffer de DMA.

AllocationListSize

O número inicial de elementos em uma matriz de alocações (ou seja, uma matriz de estruturas de DXGK_ALLOCATIONLIST ). Esse número é o número inicial de alocações que o driver solicita para estar nos membros pAllocationList do DXGKARG_PRESENT e DXGKARG_RENDER estruturas em chamadas para as funções DxgkDdiPresent e DxgkDdiRender do driver, respectivamente.

A lista de alocação pode crescer e reduzir após a criação do contexto; no entanto, a lista de alocação nunca pode reduzir menor do que o tamanho inicial especificado por AllocationListSize .

Nota Se DXGK_CREATECONTEXTFLAGS. GdiContext é definido como 1, o que significa que o contexto é criado como um contexto específico da GDI, AllocationListSize deve ser definido como um valor de 256.
 

PatchLocationListSize

O número inicial de elementos em uma matriz de locais de patch (ou seja, uma matriz de estruturas de D3DDDI_PATCHLOCATIONLIST ) para o dispositivo no modo de usuário e no modo kernel. Esse número é o número inicial de locais de patch que o driver solicita para estar nos membros pPatchLocationListIn das estruturas DXGKARG_RENDER em chamadas para sua função DxgkDdiRender .

A lista de locais de patch pode crescer e diminuir após a criação do contexto; no entanto, a lista de localização de patch nunca pode reduzir menor do que o tamanho inicial especificado por PatchLocationListSize .

Reserved

Esse membro é reservado e deve ser definido como zero.

Esse membro está disponível a partir do Windows 7.

Caps

Descreve os recursos opcionais compatíveis com o contexto.

Com suporte começando com Windows 10.

PagingCompanionNodeId

Especifica o identificador de mecanismo baseado em zero do mecanismo a ser usado para esse complemento de paginação de contexto.

Com suporte começando com Windows 10.

Comentários

Um driver de miniporto de exibição especifica valores para os membros DmaBufferSize e AllocationListSize para garantir que:

  • O subsistema de gráficos do Microsoft DirectX pode usar apenas um buffer de DMA (acesso direto à memória) para exibir (usando a função DxgkDdiPresent do driver de miniporta de exibição) pelo menos uma estrutura RECT para todos os cenários.
  • Os tamanhos dos buffers de DMA e lista de alocação são grandes o suficiente para manter pelo menos um comando que não pode ser dividido entre vários buffers.
  • Os tamanhos de buffers de DMA e lista de alocação são grandes o suficiente para evitar a instalação e a sobrecarga de DMA.
O driver de miniporto de exibição pode especificar apenas segmentos de abertura no membro DmaBufferSegmentSet ; se o driver especificar um segmento de memória, ocorrerá uma falha de criação de contexto.

Se o driver definir DmaBufferSegmentSet como 0, o gerenciador de memória de vídeo alocará memória contígua com bloqueio de página, que é memória mapeada com gravação combinada, para os buffers de DMA. Portanto, a GPU deve acessar buffers de DMA usando ciclos PCI em computadores em que as transferências de AGP que ocorrem fora da abertura do AGP não são permitidas.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista
Cabeçalho d3dkmddi.h (inclua D3dkmddi.h)

Confira também

D3DDDI_PATCHLOCATIONLIST

DXGKARG_CREATECONTEXT

DXGKARG_PRESENT

DXGKARG_RENDER

DXGK_ALLOCATIONLIST

DXGK_CREATECONTEXTFLAGS

DxgkDdiPresent

DxgkDdiRender

RECT