structure D3DDDI_MAPGPUVIRTUALADDRESS (d3dukmdt.h)

La structure D3DDDI_MAPGPUVIRTUALADDRESS est utilisée avec pfnMapGpuVirtualAddressCb pour mapper une plage d’adresses virtuelles GPU à une plage d’allocation spécifique ou pour la placer à l’état Non valide ou Zéro .

Syntaxe

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;

Membres

hPagingQueue

Handle pour la file d’attente de pagination des appareils, utilisé pour l’opération.

BaseAddress

(Facultatif) Si la valeur n’est pas NULL, le gestionnaire de mémoire vidéo tente d’utiliser cette adresse comme adresse de base pour le mappage. Si la plage entre BaseAddress et BaseAddress+Size n’est pas libre, elle doit appartenir à une plage, obtenue précédemment en appelant pfnReserveGpuVirtualAddressCb ou pfnMapGpuVirtualAddressCb.

La valeur BaseAddress est en octets et doit être alignée sur la limite de page du processeur. Si NULL est spécifié, le gestionnaire de mémoire vidéo choisit l’adresse de base pour l’allocation dans les valeurs MinimumAddress et MaximumAddress spécifiées.

MinimumAddress

(Facultatif) Spécifie l’adresse virtuelle GPU minimale à prendre en compte pour la plage mappée.

La valeur MinimumAddress est en octets et doit être alignée sur la page de 4 Ko. Ce paramètre est ignoré lorsque BaseAddress != NULL.

MaximumAddress

(Facultatif) Spécifie l’adresse virtuelle GPU maximale à prendre en compte pour la plage mappée. le gestionnaire de mémoire vidéo garantit que BaseAddress+Size<= MaximumAddress. Si MaximumAddress est défini sur NULL, le gestionnaire de mémoire vidéo n’applique aucune limite.

La valeur MaximumAddress est en octets et doit être alignée sur la page de 4 Ko. Ce paramètre est ignoré lorsque BaseAddress != NULL.

hAllocation

Gérez l’allocation en cours de mappage dans l’espace d’adressage virtuel GPU. Doit avoir la valeur NULL lorsque Protection.NoAccess ou Protection.Zero est spécifié.

OffsetInPages

Spécifie le décalage, en 4 Ko, vers la page de démarrage de l’allocation spécifiée qui doit être mappée.

SizeInPages

Spécifie la taille de la plage à mapper, en pages de 4 Ko.

Protection

Une structure D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE qui spécifie la protection sur l’adresse virtuelle GPU mappée.

DriverProtection

Spécifie une valeur de protection 64 bits spécifique au pilote associée à la plage VA allouée. La protection de pilote spécifiée sera utilisée dans l’appel à DxgkDdiUpdatePageTable pour les entrées de table de page correspondant à cette plage d’adresses virtuelles.

Reserved0

Ce membre est réservé et doit être défini sur zéro.

Reserved1

Ce membre est réservé et doit être défini sur zéro.

VirtualAddress

Adresse virtuelle affectée à l’allocation.

PagingFenceValue

Valeur de clôture de pagination de l’appareil que le gestionnaire de mémoire vidéo signale lorsque l’opération de carte se termine sur le GPU. Le pilote en mode utilisateur doit s’assurer que cette clôture est supprimée ou attendre explicitement le processeur ou le GPU sur cette clôture avant d’autoriser le GPU à accéder à la plage mappée, ou une erreur irrécupérable peut se produire. Une valeur de clôture zéro peut être retournée, ce qui signifie que l’opération est déjà terminée.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 10
Serveur minimal pris en charge Windows Server 2016
En-tête d3dukmdt.h (inclure D3dumddi.h, D3dkmddi.h)

Voir aussi

D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE

D3DKMTMapGpuVirtualAddress

DxgkDdiUpdatePageTable

pfnMapGpuVirtualAddressCb

pfnReserveGpuVirtualAddressCb