Partilhar via


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

pfnMapGpuVirtualAddressCb mapeia intervalos de endereço virtual de GPU (VA) para um intervalo de alocação específico ou o coloca no estado de 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

[in/out] pDate é um ponteiro para uma estrutura D3DDDI_MAPGPUVIRTUALADDRESS que descreve a operação a ser executada.

Valor de retorno

pfnMapGpuVirtualAddressCb retorna um dos seguintes valores:

Código de retorno Descrição
S_OK A operação foi concluída com êxito.
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.

Observações

O driver do 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 for especificado, o intervalo de VA não poderá pertencer a um intervalo 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 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 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 da GPU, que é alocado pela API, é liberado quando a alocação (a VA da GPU é mapeada para) é destruída. O intervalo de VA também pode ser liberado chamando PFND3DDDI_FREEGPUVIRTUALADDRESSCB, mas isso precisa ser sincronizado com a destruição da alocação, se necessário.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows 10
servidor com suporte mínimo Windows Server 2016
da Plataforma de Destino Área de trabalho
cabeçalho d3dumddi.h (inclua D3dumddi.h)

Consulte também

D3DDDI_MAPGPUVIRTUALADDRESS

pfnReserveGpuVirtualAddressCb