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) |