PFND3DDDI_MAPGPUVIRTUALADDRESSCB fonction de rappel (d3dumddi.h)

pfnMapGpuVirtualAddressCb mappe les plages d’adresses virtuelles GPU à une plage d’allocation spécifique ou les place à l’état Non valide ou Zéro .

Syntaxe

PFND3DDDI_MAPGPUVIRTUALADDRESSCB Pfnd3dddiMapgpuvirtualaddresscb;

HRESULT Pfnd3dddiMapgpuvirtualaddresscb(
  HANDLE hDevice,
  D3DDDI_MAPGPUVIRTUALADDRESS *unnamedParam2
)
{...}

Paramètres

hDevice

Handle de l’appareil d’affichage.

unnamedParam2

[in/out] pDate est un pointeur vers une structure D3DDDI_MAPGPUVIRTUALADDRESS qui décrit l’opération à effectuer.

Valeur retournée

pfnMapGpuVirtualAddressCb retourne l’une des valeurs suivantes :

Code de retour Description
S_OK L’opération s’est terminée avec succès.
E_PENDING L’appel a réussi, mais l’opération n’est pas terminée. L’appelant doit attendre la valeur de clôture retournée avant d’accéder à l’allocation.

Cette fonction peut également retourner d’autres valeurs.

Remarques

Le pilote en mode utilisateur peut spécifier une adresse virtuelle GPU de base (VA) à mapper ou laisser le gestionnaire de mémoire vidéo en choisir automatiquement une. Lors de la spécification d’une valeur BaseAddress non NULL, l’ensemble de la plage de BaseAddress à BaseAddress+Size doit être dans un état libéré ou appartenir à une plage VA obtenue en appelant pfnMapGpuVirtualAddressCb ou pfnReserveGpuVirtualAddressCb. Lorsque Protection.Zero ou Protection.NoAccess est spécifié, la plage VA ne peut pas appartenir à une plage obtenue en appelant pfnMapGpuVirtualAddressCb.

Le pilote en mode utilisateur peut spécifier si le mappage doit autoriser des privilèges d’écriture et d’exécution en plus des privilèges de lecture, qui existent toujours par défaut.

Dans la configuration de l’adaptateur d’affichage lié (LDA), la file d’attente de pagination définit un GPU physique dont les tables de pages sont modifiées, et le handle d’allocation (s’il n’est pas NULL) définit l’emplacement vers lequel pointent les entrées de la table de page. L’allocation peut être résidente dans n’importe quel segment de mémoire GPU physique.

La plage VA GPU, qui est allouée par l’API, est libérée lorsque l’allocation (l’va GPU est mappée à) est détruite. La plage VA peut également être libérée en appelant PFND3DDDI_FREEGPUVIRTUALADDRESSCB, mais cela doit être synchronisé avec la destruction de l’allocation si nécessaire.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 10
Serveur minimal pris en charge Windows Server 2016
Plateforme cible Desktop (Expérience utilisateur)
En-tête d3dumddi.h (inclure D3dumddi.h)

Voir aussi

D3DDDI_MAPGPUVIRTUALADDRESS

pfnReserveGpuVirtualAddressCb