Partager via


structure D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION (d3dukmdt.h)

D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION décrit une opération de mise à jour d’adresse virtuelle.

Syntaxe

typedef struct _D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION {
  D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION_TYPE OperationType;
  union {
    struct {
      D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS BaseAddress;
      D3DKMT_ALIGN64 D3DGPU_SIZE_T          SizeInBytes;
      D3DKMT_HANDLE                         hAllocation;
      D3DKMT_ALIGN64 D3DGPU_SIZE_T          AllocationOffsetInBytes;
      D3DKMT_ALIGN64 D3DGPU_SIZE_T          AllocationSizeInBytes;
    } Map;
    struct {
      D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS   BaseAddress;
      D3DKMT_ALIGN64 D3DGPU_SIZE_T            SizeInBytes;
      D3DKMT_HANDLE                           hAllocation;
      D3DKMT_ALIGN64 D3DGPU_SIZE_T            AllocationOffsetInBytes;
      D3DKMT_ALIGN64 D3DGPU_SIZE_T            AllocationSizeInBytes;
      D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE Protection;
      D3DKMT_ALIGN64 UINT64                   DriverProtection;
    } MapProtect;
    struct {
      D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS   BaseAddress;
      D3DKMT_ALIGN64 D3DGPU_SIZE_T            SizeInBytes;
      D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE Protection;
    } Unmap;
    struct {
      D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS SourceAddress;
      D3DKMT_ALIGN64 D3DGPU_SIZE_T          SizeInBytes;
      D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS DestAddress;
    } Copy;
  };
} D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION;

Membres

OperationType

Map

Mappe la plage d’adresses virtuelles donnée à la plage d’allocation donnée. L’allocation ne doit pas être résidente au moment de la soumission ou au moment du mappage. La protection en lecture-écriture est définie sur les pages. DriverProtection pour les pages a la valeur zéro.

Map.BaseAddress

Spécifie la BaseAddress de la plage d’adresses virtuelles GPU à mettre à jour. La valeur est en octets et doit être alignée à 4 Ko.

L’ensemble de la plage de BaseAddress à BaseAddress+SizeInBytes doit se trouver dans le réservé (zéro) ou mappé état, ou l’opération pfnUpdateGpuVirtualAddressCb échoue. Les plages d’adresses virtuelles pour toutes les opérations doivent appartenir à une plage d’adresses virtuelle qui est réservée par le même appel pfnReserveGpuVirtualAddressCb.

Map.SizeInBytes

Spécifie la taille, en octets, pour la plage mise à jour. La valeur doit être alignée à 4 Ko.

Map.hAllocation

Spécifie l’allocation à qui la plage doit être mappée.

Map.AllocationOffsetInBytes

Spécifie le décalage, en octets, à la première page de l’allocation à mapper. La valeur doit être alignée à 4 Ko.

Map.AllocationSizeInBytes

Spécifie la taille de la plage d’allocation à mapper, en octets. La valeur doit être alignée à 4 Ko et doit être inférieure à Map.SizeInBytes. Si cette valeur est égale à zéro, map.SizeInBytes est utilisé.

Lorsque cette valeur est supérieure à Map.SizeInBytes, Map.SizeInBytes doit être un multiple. Dans ce cas, Map.SizeInBytes/Map.AllocationSizeInBytes plages d’adresses virtuelles seront mappées à la même plage d’allocation.

MapProtect

Mappe la plage d’adresses virtuelles donnée à la plage d’allocation donnée. L’allocation ne doit pas être résidente au moment de la soumission ou au moment du mappage. La protection de page est spécifiée dans l’opération.

MapProtect.BaseAddress

Spécifie la BaseAddress de la plage d’adresses virtuelles GPU à mettre à jour. La valeur est en octets et doit être alignée à 4 Ko.

L’ensemble de la plage de BaseAddress à +SizeInBytes doit se trouver dans le réservé ou 'état mappé, ou pfnUpdateGpuVirtualAddressCb échoue. Les plages d’adresses virtuelles pour toutes les opérations doivent appartenir à une plage d’adresses virtuelle qui est réservée par le même appel pfnReserveGpuVirtualAddressCb.

MapProtect.SizeInBytes

Spécifie la taille, en octets, pour la plage mise à jour. La valeur doit être alignée à 4 Ko.

MapProtect.hAllocation

Spécifie l’allocation à qui la plage doit être mappée.

MapProtect.AllocationOffsetInBytes

Spécifie le décalage, en octets, à la première page de l’allocation à mapper. La valeur doit être alignée à 4 Ko.

MapProtect.AllocationSizeInBytes

Spécifie la taille de la plage d’allocation à mapper, en octets. La valeur doit être alignée à 4 Ko et doit être inférieure à Map.SizeInBytes. Si cette valeur est égale à zéro, map.SizeInBytes est utilisé.

Lorsque cette valeur est inférieure à Map.SizeInBytes, Map.SizeInBytes doit être un multiple. Dans ce cas, Map.SizeInBytes/Map.AllocationSizeInBytes plages d’adresses virtuelles seront mappées à la même plage d’allocation.

MapProtect.Protection

Spécifie la protection définie par l’API pour les pages.

MapProtect.DriverProtection

Spécifie la protection spécifique du pilote pour les pages.

Unmap

Place la plage d’adresses virtuelle spécifiée à l’état zéro ou à l’état non valide.

Unmap.BaseAddress

Spécifie le BaseAddress de la plage d’adresses virtuelles GPU pour revenir à l’état zéro. La valeur est en octets et doit être alignée à 4 Ko.

Unmap.SizeInBytes

Spécifie la taille, en octets, pour que la plage soit libérée. La valeur doit être alignée à 4 Ko.

Unmap.Protection

Définit l’état d’entrée de la table de page après le mappage, Zéro ou NoAccess.

Copy

L’opération de copie copie tous les mappages de la plage d’adresses virtuelles GPU source vers la plage de destination. Les plages source et de destination sont autorisées à se croiser. Les deux plages doivent appartenir à une plage d’adresses virtuelles réservée (zéro).

BaseAddress

Spécifie l’adresse virtuelle de début de la plage d’adresses virtuelle source. La valeur est en octets et doit être alignée à 4 Ko.

Copy.SourceAddress

Copy.SizeInBytes

Spécifie la taille, en octets, de la plage copiée. La valeur doit être alignée à 4 Ko.

Copy.DestAddress

Spécifie l’adresse virtuelle de début de la plage d’adresses virtuelles de destination. La valeur est en octets et doit être alignée à 4 Ko.

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)

Voir aussi

pfnReserveGpuVirtualAddressCb

pfnUpdateGpuVirtualAddressCb