Partilhar via


estrutura DXGK_SEGMENTDESCRIPTOR (d3dkmddi.h)

A estrutura DXGK_SEGMENTDESCRIPTOR contém informações sobre um segmento compatível com o driver.

Sintaxe

typedef struct _DXGK_SEGMENTDESCRIPTOR {
  [out] PHYSICAL_ADDRESS  BaseAddress;
  [out] PHYSICAL_ADDRESS  CpuTranslatedAddress;
  [out] SIZE_T            Size;
  [out] UINT              NbOfBanks;
  [out] SIZE_T            *pBankRangeTable;
  [out] SIZE_T            CommitLimit;
  [out] DXGK_SEGMENTFLAGS Flags;
} DXGK_SEGMENTDESCRIPTOR;

Membros

[out] BaseAddress

O endereço base do segmento, conforme determinado pela GPU (unidade de processamento gráfico). O endereço físico de uma alocação que o gerenciador de memória de vídeo paginou no segmento recebe um endereço de GPU que é deslocado do endereço base especificado por BaseAddress .

O gerenciador de memória de vídeo ignora o endereço base dos segmentos de abertura do tipo AGP (em que o sinalizador de campo de bits Agp é especificado no membro Flags ) e usa o endereço físico real do segmento dentro da abertura do AGP, conforme determinado no barramento onde a GPU está localizada. Nessa situação, o driver pode usar endereços que o gerenciador de memória de vídeo gerou para alocação diretamente sem a necessidade de tradução.

[out] CpuTranslatedAddress

O endereço base do segmento, em relação ao barramento no qual a GPU está conectada. Por exemplo, quando a GPU está conectada no barramento PCI, CpuTranslatedAddress é o endereço base do intervalo utilizável especificado por um registro de endereço base PCI (BAR). O driver especifica esse endereço somente se especificar um segmento acessível pela CPU definindo o sinalizador de campo de bit CpuVisible no membro Flags .

Esse membro é ignorado para segmentos de abertura, incluindo o segmento de abertura do tipo AGP. A única exceção ocorre quando o driver de exibição do modo de usuário não configurou um endereço virtual alternativo para uma alocação primária (ou seja, quando o driver não definiu UseAlternateVA no membro Flags da estrutura D3DDDICB_LOCKFLAGS durante uma chamada para a função pfnLockCb ).

Antes que o gerenciador de memória de vídeo mapeie um endereço virtual para o intervalo físico, o gerenciador de memória de vídeo converte esse endereço físico com base na exibição da CPU do barramento e informa ao motorista sobre a operação para que o driver possa configurar uma abertura para acessar o conteúdo do segmento no local especificado.

[out] Size

O tamanho, em bytes, do segmento. Esse tamanho deve ser um múltiplo do tamanho da página do host nativo (por exemplo, 4 KB na arquitetura x86).

Para segmentos de abertura do tipo AGP (em que o sinalizador de campo de bit do Agp é especificado no membro Flags ), o gerenciador de memória de vídeo aloca o máximo de espaço de abertura possível, de modo que esse membro seja ignorado.

[out] NbOfBanks

O número de bancos no segmento, se o banco for usado (ou seja, se o sinalizador de campo de bits UseBanking for definido no membro Flags ).

[out] pBankRangeTable

Uma matriz de valores que indica os intervalos que delimitam cada banco no segmento. O driver especifica essa matriz somente se também definir o sinalizador de campo de bits UseBanking no membro Flags .

A matriz especifica os endereços finais do primeiro banco por meio do banco NbOfBanksth (ou seja, os deslocamentos finais para o segmento para cada banco). Observe o seguinte:

  • Os bancos são contíguos.

  • O primeiro banco começa no deslocamento zero do segmento.

  • O último banco termina no final do segmento, portanto, o driver não é obrigado a especificar o endereço final do último banco.

[out] CommitLimit

O número máximo de bytes que podem ser confirmados no segmento. Para um segmento de memória, o limite de confirmação é sempre o mesmo que o tamanho do segmento, que é especificado no membro Size . Para um segmento de abertura, o driver pode limitar a quantidade de memória que pode ser confirmada para o segmento em sistemas com pequenas quantidades de memória física.

[out] Flags

Uma estrutura DXGK_SEGMENTFLAGS que identifica propriedades, em sinalizadores de campo de bit, para o segmento.

Observe que, para um segmento de abertura do tipo AGP, o driver deve definir exclusivamente o membro Agp da estrutura na união que DXGK_SEGMENTFLAGS contém. Embora o segmento de abertura do tipo AGP seja uma abertura e esteja acessível à CPU, se algum outro membro estiver definido, o adaptador não será inicializado.

Requisitos

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

Confira também

D3DDDICB_LOCKFLAGS

DXGKARG_QUERYADAPTERINFO

DXGK_ALLOCATIONINFO

DXGK_QUERYSEGMENTIN

DXGK_QUERYSEGMENTOUT

DXGK_SEGMENTFLAGS

DxgkDdiQueryAdapterInfo

pfnLockCb