Partager via


D3DKMTUpdateGpuVirtualAddress, fonction (d3dkmthk.h)

D3DKMTUpdateGpuVirtualAddress est une opération spéciale utilisée dans le contexte des ressources de vignette. Il permet au pilote de spécifier un certain nombre d’opérations de mappage à appliquer à l’espace d’adressage virtuel du processus dans un lot unique de mises à jour de la table de pages.

Syntaxe

NTSTATUS D3DKMTUpdateGpuVirtualAddress(
  [in] const D3DKMT_UPDATEGPUVIRTUALADDRESS *unnamedParam1
);

Paramètres

[in] unnamedParam1

Pointeur vers une structure D3DKMT_UPDATEGPUVIRTUALADDRESS qui décrit l’opération.

Valeur de retour

Retourner le code Description
STATUS_SUCCESS Le contexte de l’appareil a été créé avec succès.
STATUS_INVALID_PARAMETER Les paramètres ont été validés et déterminés comme incorrects.

Cette fonction peut également retourner d’autres valeurs NTSTATUS.

Remarques

La plage d’adresses virtuelles d’unité de traitement graphique (GPU) dans toutes les opérations (à l’exception de la source des opérations de copie) doit appartenir à une seule plage d’adresses virtuelles obtenue en appelant ReserveGpuVirtualAddressRange. De même, les plages d’adresses virtuelles de toutes les sources des opérations de copie doivent appartenir à une plage d’adresses virtuelle unique, obtenue en appelant ReserveGpuVirtualAddressRange.

Les mises à jour de la table de pages sont exécutées sur un contexte de pagination, dédiée au contexte de rendu spécifié et exécutées sur le GPU uniquement après le contexte de rendu associé signalé FenceValue pour l’objet de clôture supervisé spécifié. Une fois les mises à jour de la table de pages terminées, le contexte de pagination signale à l’objet de clôture supervisé FenceValue+1, ce qui permet au contexte de rendu d’effectuer un verrouillage étroit avec les mises à jour de la table de pages.

Les plages d’adresses virtuelles des opérations de mise à jour sont autorisées à se croiser. Les opérations seront appliquées dans l’ordre dans lequel elles sont envoyées.

Dans un seul appel UpdateVirtualAddress :

  • Toutes les plages d’adresses virtuelles dans les opérations de mappage et la plage de destination dans les opérations de copie doivent appartenir à la même plage réservée (zéro).
  • La plage d’adresses virtuelles source dans les opérations de copie est autorisée à partir d’une autre plage réservée (zéro).
  • La plage d’adresses virtuelles source dans toutes les opérations de copie doit appartenir à la même plage réservée (zéro).

Les pilotes peuvent envoyer de nombreux appels UpdateGpuVirtualAddress, qui seront mis en file d’attente derrière la clôture de rendu. Lorsque le nombre d’opérations de mise à jour en file d’attente dépasse 128, le thread appelant est bloqué jusqu’à ce que les opérations précédentes soient traitées par le gestionnaire de mémoire vidéo.

Exigences

Exigence Valeur
client minimum pris en charge Windows 10
serveur minimum pris en charge Windows Server 2016
plateforme cible Universel
d’en-tête d3dkmthk.h (include D3dkmthk.h)
bibliothèque Gdi32.lib
DLL Gdi32.dll

Voir aussi

D3DKMT_UPDATEGPUVIRTUALADDRESS

ReserveGpuVirtualAddressRange