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