Compartilhar via


estrutura D3DDDI_MAPGPUVIRTUALADDRESS (d3dukmdt.h)

A estrutura D3DDDI_MAPGPUVIRTUALADDRESS é usada com pfnMapGpuVirtualAddressCb para mapear um intervalo de endereços virtuais de GPU para um intervalo de alocação específico ou para colocá-lo no estado Inválido ou Zero .

Sintaxe

typedef struct D3DDDI_MAPGPUVIRTUALADDRESS {
  D3DKMT_HANDLE                           hPagingQueue;
  D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS   BaseAddress;
  D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS   MinimumAddress;
  D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS   MaximumAddress;
  D3DKMT_HANDLE                           hAllocation;
  D3DKMT_ALIGN64 D3DGPU_SIZE_T            OffsetInPages;
  D3DKMT_ALIGN64 D3DGPU_SIZE_T            SizeInPages;
  D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE Protection;
  D3DKMT_ALIGN64 UINT64                   DriverProtection;
  UINT                                    Reserved0;
  D3DKMT_ALIGN64 UINT64                   Reserved1;
  D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS   VirtualAddress;
  D3DKMT_ALIGN64 UINT64                   PagingFenceValue;
} D3DDDI_MAPGPUVIRTUALADDRESS;

Membros

hPagingQueue

Um identificador para a fila de paginação do dispositivo, usado para a operação.

BaseAddress

(Opcional) Se não for NULL, o gerenciador de memória de vídeo tentará usar esse endereço como o endereço base para o mapeamento. Se o intervalo de BaseAddress a BaseAddress+Size não for gratuito, ele deverá pertencer a um intervalo, obtido anteriormente chamando pfnReserveGpuVirtualAddressCb ou pfnMapGpuVirtualAddressCb.

O valor BaseAddress está em bytes e deve ser alinhado ao limite da página da CPU. Se NULL for especificado, o gerenciador de memória de vídeo escolherá o endereço base para a alocação dentro de MinimumAddress e MaximumAddress especificados.

MinimumAddress

(Opcional) Especifica o endereço virtual de GPU mínimo a ser considerado para o intervalo mapeado.

O valor MinimumAddress está em bytes e deve ser alinhado à página 4KB. Esse parâmetro é ignorado quando BaseAddress != NULL.

MaximumAddress

(Opcional) Especifica o endereço virtual máximo de GPU a ser considerado para o intervalo mapeado. o gerenciador de memória de vídeo garantirá que BaseAddress+Size<= MaximumAddress. Se MaximumAddress estiver definido como NULL, o gerenciador de memória de vídeo não aplicará nenhum limite.

O valor MaximumAddress está em bytes e deve ser alinhado à página de 4KB. Esse parâmetro é ignorado quando BaseAddress != NULL.

hAllocation

Manipule para a alocação que está sendo mapeada para o espaço de endereço virtual da GPU. Deve ser NULL quando Protection.NoAccess ou Protection.Zero for especificado.

OffsetInPages

Especifica o deslocamento, em 4KB, para a página inicial dentro da alocação especificada que deve ser mapeada.

SizeInPages

Especifica o tamanho do intervalo a ser mapeado, em páginas de 4KB.

Protection

Uma estrutura D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE que especifica a proteção no endereço virtual de GPU mapeado.

DriverProtection

Especifica um valor de proteção de 64 bits específico do driver associado ao intervalo de VA que está sendo alocado. A proteção de driver especificada será usada na chamada para DxgkDdiUpdatePageTable para entradas de tabela de página correspondentes a esse intervalo de endereços virtuais.

Reserved0

Esse membro é reservado e deve ser definido como zero.

Reserved1

Esse membro é reservado e deve ser definido como zero.

VirtualAddress

O endereço virtual atribuído à alocação.

PagingFenceValue

O valor de cerca de paginação do dispositivo que o gerenciador de memória de vídeo sinaliza quando a operação de mapa é concluída na GPU. O driver de modo de usuário deve garantir que essa cerca seja desativada ou aguardar explicitamente a CPU ou a GPU nessa cerca antes de permitir que a GPU acesse o intervalo mapeado ou uma falha irrecuperável possa ocorrer. Um valor de cerca zero pode ser retornado, o que significa que a operação já está concluída.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 10
Servidor mínimo com suporte Windows Server 2016
Cabeçalho d3dukmdt.h (inclua D3dumddi.h, D3dkmddi.h)

Confira também

D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE

D3DKMTMapGpuVirtualAddress

DxgkDdiUpdatePageTable

pfnMapGpuVirtualAddressCb

pfnReserveGpuVirtualAddressCb