Compartilhar via


PFND3DDDI_MAPGPUVIRTUALADDRESSCB função de retorno de chamada (d3dumddi.h)

pfnMapGpuVirtualAddressCb mapeia intervalos de ENDEREÇO VIRTUAL (VA) de GPU para um intervalo de alocação específico ou o coloca no estado Inválido ou Zero .

Sintaxe

PFND3DDDI_MAPGPUVIRTUALADDRESSCB Pfnd3dddiMapgpuvirtualaddresscb;

HRESULT Pfnd3dddiMapgpuvirtualaddresscb(
  HANDLE hDevice,
  D3DDDI_MAPGPUVIRTUALADDRESS *unnamedParam2
)
{...}

Parâmetros

hDevice

Um identificador para o dispositivo de exibição.

unnamedParam2

[entrada/saída] pDate é um ponteiro para uma estrutura D3DDDI_MAPGPUVIRTUALADDRESS que descreve a operação a ser executada.

Retornar valor

pfnMapGpuVirtualAddressCb retorna um dos seguintes valores:

Código de retorno Descrição
S_OK A operação foi concluída com sucesso.
E_PENDING A chamada foi bem-sucedida, mas a operação não foi concluída. O chamador deve aguardar o valor de cerca retornado antes de acessar a alocação.

Essa função também pode retornar outros valores.

Comentários

O driver de modo de usuário pode especificar um VA (endereço virtual) de GPU base para mapear ou permitir que o gerenciador de memória de vídeo escolha automaticamente um. Ao especificar um valor BaseAddress não NULL, todo o intervalo de BaseAddress a BaseAddress+Size deve estar em um estado liberado ou pertencer a um intervalo va que foi obtido chamando pfnMapGpuVirtualAddressCb ou pfnReserveGpuVirtualAddressCb. Quando Protection.Zero ou Protection.NoAccess é especificado, o intervalo va não pode pertencer a um intervalo que foi obtido chamando pfnMapGpuVirtualAddressCb.

O driver de modo de usuário pode especificar se o mapeamento deve permitir privilégios de gravação e execução, além de privilégios de leitura, que sempre existem por padrão.

Na configuração do LDA (adaptador de exibição vinculado), a fila de paginação define uma GPU física cujas tabelas de página são modificadas e o identificador de alocação (se não FOR NULL) define para onde as entradas da tabela de página estão apontando. A alocação pode ser residente em qualquer segmento de memória de GPU física.

O intervalo de VA de GPU, que é alocado pela API, é liberado quando a alocação (a VA da GPU é mapeada para) é destruída. O intervalo va também pode ser liberado chamando PFND3DDDI_FREEGPUVIRTUALADDRESSCB, mas isso precisa ser sincronizado com a destruição de alocação, se necessário.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 10
Servidor mínimo com suporte Windows Server 2016
Plataforma de Destino Área de Trabalho
Cabeçalho d3dumddi.h (inclua D3dumddi.h)

Confira também

D3DDDI_MAPGPUVIRTUALADDRESS

pfnReserveGpuVirtualAddressCb