Compartir a través de


Función D3DKMTUpdateGpuVirtualAddress (d3dkmthk.h)

D3DKMTUpdateGpuVirtualAddress es una operación especial que se usa en el contexto de los recursos de mosaico. Permite al controlador especificar una serie de operaciones de asignación que se aplicarán al espacio de direcciones virtuales del proceso en un único lote de actualizaciones de tabla de páginas.

Sintaxis

NTSTATUS D3DKMTUpdateGpuVirtualAddress(
  [in] const D3DKMT_UPDATEGPUVIRTUALADDRESS *unnamedParam1
);

Parámetros

[in] unnamedParam1

Puntero a una estructura de D3DKMT_UPDATEGPUVIRTUALADDRESS que describe la operación.

Valor devuelto

Código devuelto Descripción
STATUS_SUCCESS El contexto del dispositivo se creó correctamente.
STATUS_INVALID_PARAMETER Los parámetros se validaron y determinaron que son incorrectos.

Esta función también puede devolver otros valores NTSTATUS .

Comentarios

El intervalo de direcciones virtuales de la unidad de procesamiento de gráficos (GPU) en todas las operaciones (excepto el origen de las operaciones de copia) debe pertenecer a un único intervalo de direcciones virtuales que se obtuvo llamando a ReserveGpuVirtualAddressRange. Del mismo modo, los intervalos de direcciones virtuales de todos los orígenes de las operaciones de copia deben pertenecer a un único intervalo de direcciones virtuales, que se obtuvo llamando a ReserveGpuVirtualAddressRange.

Las actualizaciones de la tabla de páginas se ejecutan en un contexto de paginación, dedicado al contexto de representación especificado y se ejecutan en la GPU solo después del contexto de representación asociado señalizado FenceValue para el objeto de barrera supervisado especificado. Cuando finaliza la actualización de la tabla de páginas, el contexto de paginación señala el objeto de barrera supervisado a FenceValue+1, lo que permite que el contexto de representación realice un interbloqueo estrecho con las actualizaciones de la tabla de páginas.

Los intervalos de direcciones virtuales de las operaciones de actualización pueden intersecrse. Las operaciones se aplicarán en el orden en que se envíen.

En una sola llamada a UpdateVirtualAddress :

  • Todos los intervalos de direcciones virtuales de las operaciones de asignación y el intervalo de destino de las operaciones de copia deben pertenecer al mismo intervalo reservado (cero).
  • El intervalo de direcciones virtuales de origen en las operaciones de copia puede ser de un intervalo reservado (cero) diferente.
  • El intervalo de direcciones virtuales de origen de todas las operaciones de copia debe pertenecer al mismo intervalo reservado (cero).

Los controladores pueden enviar muchas llamadas a UpdateGpuVirtualAddress , que se ponerán en cola detrás de la barrera de representación. Cuando el número de operaciones de actualización en cola supera 128, el subproceso de llamada se bloqueará hasta que el administrador de memoria de vídeo procese las operaciones anteriores.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 10
Servidor mínimo compatible Windows Server 2016
Plataforma de destino Universal
Encabezado d3dkmthk.h (incluya D3dkmthk.h)
Library Gdi32.lib
Archivo DLL Gdi32.dll

Consulte también

D3DKMT_UPDATEGPUVIRTUALADDRESS

ReserveGpuVirtualAddressRange