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 dans 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 de l’appareil, 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 de BaseAddress à BaseAddress+Size n’est pas gratuite, elle doit appartenir à une plage, précédemment obtenue en appelant pfnReserveGpuVirtualAddressCb ou pfnMapGpuVirtualAddressCb.
La valeur BaseAddress est en octets et doit être alignée sur la limite de page processeur. Si la valeur NULL est spécifiée, le gestionnaire de mémoire vidéo sélectionne l’adresse de base de l’allocation dans le MinimumAddress spécifié et MaximumAddress.
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 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 a la valeur 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 4 Ko. Ce paramètre est ignoré lorsque BaseAddress != NULL.
hAllocation
Gérez l’allocation mappée dans l’espace d’adressage virtuel GPU. Doit être NULL quand Protection.NoAccess ou Protection.Zero est spécifié.
OffsetInPages
Spécifie le décalage, en 4 Ko, vers la page de démarrage dans l’allocation spécifiée qui doit être mappée.
SizeInPages
Spécifie la taille de la plage à mapper, en pages 4 Ko.
Protection
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 pages 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 attende 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. Une valeur de clôture zéro peut être retournée, ce qui signifie que l’opération est déjà terminée.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows 10 |
serveur minimum pris en charge | Windows Server 2016 |
d’en-tête | d3dukmdt.h (include D3dumddi.h, D3dkmddi.h) |