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