Partager via


PFND3DDDI_MAPGPUVIRTUALADDRESSCB fonction de rappel (d3dumddi.h)

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

Syntaxe

PFND3DDDI_MAPGPUVIRTUALADDRESSCB Pfnd3dddiMapgpuvirtualaddresscb;

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

Paramètres

hDevice

Handle vers l’appareil d’affichage.

unnamedParam2

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

Valeur de retour

pfnMapGpuVirtualAddressCb retourne l’une des valeurs suivantes :

Retourner le code 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 à mapper ou laisser le gestionnaire de mémoire vidéo en choisir automatiquement un. Lors de la spécification d’une valeur BaseAddress non NULL, la plage entière entre BaseAddress et 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 les 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 où les entrées de la table de pages pointent vers. 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é à) est détruite. La plage VA peut également être libérée en appelant PFND3DDDI_FREEGPUVIRTUALADDRESSCB, mais elle doit être synchronisée avec la destruction de l’allocation si nécessaire.

Exigences

Exigence Valeur
client minimum pris en charge Windows 10
serveur minimum pris en charge Windows Server 2016
plateforme cible Bureau
d’en-tête d3dumddi.h (include D3dumddi.h)

Voir aussi

D3DDDI_MAPGPUVIRTUALADDRESS

pfnReserveGpuVirtualAddressCb