Partilhar via


estrutura DXGK_SEGMENTDESCRIPTOR3 (d3dkmddi.h)

A estrutura de DXGK_SEGMENTDESCRIPTOR3 contém informações sobre um segmento com suporte para driver que é composto de memória reservada do BIOS (que é limpa durante uma transição para um estado de baixa potência) e memória reservada ao driver.

Sintaxe

typedef struct _DXGK_SEGMENTDESCRIPTOR3 {
  [out] DXGK_SEGMENTFLAGS Flags;
  [out] PHYSICAL_ADDRESS  BaseAddress;
  [out] PHYSICAL_ADDRESS  CpuTranslatedAddress;
  [out] SIZE_T            Size;
  [out] UINT              NbOfBanks;
  [out] SIZE_T            *pBankRangeTable;
  [out] SIZE_T            CommitLimit;
        SIZE_T            SystemMemoryEndAddress;
        SIZE_T            Reserved;
} DXGK_SEGMENTDESCRIPTOR3;

Membros

[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 outros membros forem definidos, o adaptador não será inicializado.

[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 enfileirado no segmento recebe um endereço GPU que é deslocado do endereço base que o BaseAddress especifica.

O gerenciador de memória de vídeo ignora o endereço base de segmentos de abertura do tipo AGP (em que o sinalizador de Agp de campo de bits é especificado no membro sinalizadores do) e, em vez disso, usa o endereço físico real do segmento na abertura do AGP, conforme determinado no barramento em que 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, relativo 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 (BAR) PCI. O driver especifica esse endereço somente se especificar um segmento acessível por CPU definindo o sinalizador de CpuVisible campo de bits no Flags membro.

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 no 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 tiver definido UseAlternateVA no Flags membro 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 Agp sinalizador de campo de bits é especificado no membro sinalizadores de), o gerenciador de memória de vídeo aloca o máximo de espaço de abertura possível, para que esse membro seja ignorado.

[out] NbOfBanks

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

[out] pBankRangeTable

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

A matriz especifica os endereços finais do primeiro banco por meio do NbOfBanksbanco (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 é necessário para 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 tamanho. 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.

SystemMemoryEndAddress

Para segmentos que são parcialmente compostos de memória do sistema, todas as alocações que começam após esse endereço são limpas em uma transição para um estado de hibernação. As alocações que existem inteiramente na memória do sistema, em que o endereço do segmento é menor ou igual a SystemMemoryEndAddress, não são removidas nesta transição.

O driver de miniporto de exibição deverá definir esse membro como um valorNULL não se o segmento for parcialmente preservado em uma transição para um estado hibernado, caso em que o membro ParcialmentePreservado DuranteHibernate na estrutura DXGK_SEGMENTFLAGS deve ser definido.

A memória reservada ao driver é executada do endereço do segmento 0 até SystemMemoryEndAddress, inclusive. A memória reservada do BIOS é executada de (SystemMemoryEndAddress+1) até o final do segmento.

Reserved

Esse membro é reservado e deve ser definido como zero.

Observações

Essa estrutura é usada por um drivers de miniporto de exibição do modo kernel do WDDM 1.2 ou posterior para retornar informações sobre segmentos de memória em resposta a uma chamada de funçãoDxgkDdiQueryAdapterInfona qual o subsistema gráfico especifica o valor DXGKQAITYPE_QUERYSEGMENT3 no Type membro da estrutura DXGKARG_QUERYADAPTERINFO.

Essa estrutura é apontada pelo pSegmentDescriptor membro da estrutura DXGK_QUERYSEGMENTOUT3.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows 8
servidor com suporte mínimo Windows Server 2012
cabeçalho d3dkmddi.h

Consulte também

D3DDDICB_LOCKFLAGS

DXGKARG_QUERYADAPTERINFO

DXGK_QUERYSEGMENTOUT3

DXGK_SEGMENTFLAGS

DxgkDdiQueryAdapterInfo