estructura D3DDDI_MAPGPUVIRTUALADDRESS (d3dukmdt.h)
La estructura D3DDDI_MAPGPUVIRTUALADDRESS se usa con pfnMapGpuVirtualAddressCb para asignar un intervalo de direcciones virtuales de GPU a un intervalo de asignación específico o para colocarlo en el estado No válido o Cero .
Sintaxis
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;
Miembros
hPagingQueue
Identificador de la cola de paginación de dispositivos, que se usa para la operación.
BaseAddress
(Opcional) Si no es NULL, el administrador de memoria de vídeo intentará usar esta dirección como dirección base para la asignación. Si el intervalo entre BaseAddress y BaseAddress+Size no es gratuito, debe pertenecer a un intervalo, obtenido previamente llamando a pfnReserveGpuVirtualAddressCb o pfnMapGpuVirtualAddressCb.
El valor BaseAddress está en bytes y debe alinearse con el límite de la página de CPU. Si se especifica NULL, el administrador de memoria de vídeo seleccionará la dirección base para la asignación dentro de minimumAddress y MaximumAddress especificados.
MinimumAddress
(Opcional) Especifica la dirección virtual mínima de GPU que se debe tener en cuenta para el intervalo asignado.
El valor MinimumAddress está en bytes y debe alinearse con la página de 4 KB. Este parámetro se omite cuando BaseAddress != NULL.
MaximumAddress
(Opcional) Especifica la dirección virtual máxima de GPU que se debe tener en cuenta para el intervalo asignado. El administrador de memoria de vídeo garantizará que BaseAddress+Size<= MaximumAddress. Si MaximumAddress está establecido en NULL, el administrador de memoria de vídeo no aplicará ningún límite.
El valor MaximumAddress está en bytes y debe alinearse con la página de 4 KB. Este parámetro se omite cuando BaseAddress != NULL.
hAllocation
Controle la asignación que se asigna al espacio de direcciones virtuales de GPU. Debe ser NULL cuando se especifica Protection.NoAccess o Protection.Zero .
OffsetInPages
Especifica el desplazamiento, en 4 KB, en la página inicial dentro de la asignación especificada que se debe asignar.
SizeInPages
Especifica el tamaño del intervalo que se va a asignar, en páginas de 4 KB.
Protection
Estructura de D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE que especifica la protección en la dirección virtual de GPU asignada.
DriverProtection
Especifica un valor de protección de 64 bits específico del controlador asociado al intervalo de VA que se va a asignar. La protección del controlador especificada se usará en la llamada a DxgkDdiUpdatePageTable para las entradas de la tabla de páginas correspondientes a este intervalo de direcciones virtuales.
Reserved0
Este miembro está reservado y debe establecerse en cero.
Reserved1
Este miembro está reservado y debe establecerse en cero.
VirtualAddress
Dirección virtual asignada a la asignación.
PagingFenceValue
Valor de barrera de paginación de dispositivos que indica el administrador de memoria de vídeo cuando se completa la operación de asignación en la GPU. El controlador en modo de usuario debe asegurarse de que esta barrera se retire o espere explícitamente en la CPU o en la GPU en esa barrera antes de permitir que la GPU acceda al intervalo asignado o se pueda producir un error irrecuperable. Es posible que se devuelva un valor de barrera cero, lo que significa que la operación ya se ha completado.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 10 |
Servidor mínimo compatible | Windows Server 2016 |
Encabezado | d3dukmdt.h (incluya D3dumddi.h, D3dkmddi.h) |