Freigeben über


D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION-Struktur (d3dukmdt.h)

D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION beschreibt einen Virtuellen Adressaktualisierungsvorgang.

Syntax

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;

Member

OperationType

Map

Ordnet den angegebenen virtuellen Adressbereich dem angegebenen Zuordnungsbereich zu. Die Zuordnung muss nicht zum Zeitpunkt der Einreichung oder zum Zeitpunkt der Zuordnung ansässig sein. Der Lese-/Schreibschutz ist auf die Seiten festgelegt. DriverProtection für die Seiten ist auf Null festgelegt.

Map.BaseAddress

Gibt die BaseAddress des zu aktualisierenden virtuellen GPU-Adressbereichs an. Der Wert ist in Bytes und muss 4 KB ausgerichtet sein.

Der gesamte Bereich von BaseAddress bis BaseAddress+SizeInBytes muss sich im reservierten (null) oder zugeordneten Zustand befinden, andernfalls schlägt der PfnUpdateGpuVirtualAddressCb-Vorgang fehl. Die virtuellen Adressbereiche für alle Vorgänge müssen zu einem virtuellen Adressbereich gehören, der durch denselben pfnReserveGpuVirtualAddressCb-Aufruf reserviert ist.

Map.SizeInBytes

Gibt die Größe des zu aktualisierenden Bereichs in Bytes an. Der Wert muss 4 KB ausgerichtet sein.

Map.hAllocation

Gibt die Zuordnung an, der der Bereich zugeordnet werden muss.

Map.AllocationOffsetInBytes

Gibt den Offset in Bytes für die erste Seite in der Zuordnung an. Der Wert muss 4 KB ausgerichtet sein.

Map.AllocationSizeInBytes

Gibt die Größe des zugeordneten Zuordnungsbereichs in Byte an. Der Wert muss 4 KB ausgerichtet sein und kleiner als Map.SizeInBytes sein. Wenn dieser Wert 0 ist, wird Map.SizeInBytes verwendet.

Wenn dieser Wert map.SizeInBytes beträgt, muss Map.SizeInBytes ein Vielfaches davon sein. In diesem Fall werden die virtuellen Adressbereiche Map.SizeInBytes/Map.AllocationSizeInBytes dem gleichen Zuordnungsbereich zugeordnet.

MapProtect

Ordnet den angegebenen virtuellen Adressbereich dem angegebenen Zuordnungsbereich zu. Die Zuordnung muss nicht zum Zeitpunkt der Einreichung oder zum Zeitpunkt der Zuordnung ansässig sein. Der Seitenschutz wird im Vorgang angegeben.

MapProtect.BaseAddress

Gibt die BaseAddress des zu aktualisierenden virtuellen GPU-Adressbereichs an. Der Wert ist in Bytes und muss 4 KB ausgerichtet sein.

Der gesamte Bereich von BaseAddress bis BaseAddress+SizeInBytes muss sich im reservierten (null) oder zugeordneten Zustand befinden, andernfalls schlägt pfnUpdateGpuVirtualAddressCb fehl. Die virtuellen Adressbereiche für alle Vorgänge müssen zu einem virtuellen Adressbereich gehören, der durch denselben pfnReserveGpuVirtualAddressCb-Aufruf reserviert ist.

MapProtect.SizeInBytes

Gibt die Größe des zu aktualisierenden Bereichs in Bytes an. Der Wert muss 4 KB ausgerichtet sein.

MapProtect.hAllocation

Gibt die Zuordnung an, der der Bereich zugeordnet werden muss.

MapProtect.AllocationOffsetInBytes

Gibt den Offset in Bytes für die erste Seite in der Zuordnung an. Der Wert muss 4 KB ausgerichtet sein.

MapProtect.AllocationSizeInBytes

Gibt die Größe des zugeordneten Zuordnungsbereichs in Byte an. Der Wert muss 4 KB ausgerichtet sein und kleiner als Map sein. SizeInBytes. Wenn dieser Wert 0 ist, wird Map.SizeInBytes verwendet.

Wenn dieser Wert kleiner als Map.SizeInBytes ist, muss Map.SizeInBytes ein Vielfaches davon sein. In diesem Fall werden die virtuellen Adressbereiche Map.SizeInBytes/Map.AllocationSizeInBytes dem gleichen Zuordnungsbereich zugeordnet.

MapProtect.Protection

Gibt den durch die API definierten Schutz für die Seiten an.

MapProtect.DriverProtection

Gibt treiberspezifischen Schutz für die Seiten an.

Unmap

Setzt den angegebenen virtuellen Adressbereich in den Zustand null oder in den ungültigen Zustand.

Unmap.BaseAddress

Gibt die BaseAddress des virtuellen GPU-Adressbereichs an, der wieder in den Zustand Null versetzt werden soll. Der Wert ist in Bytes und muss 4 KB ausgerichtet sein.

Unmap.SizeInBytes

Gibt die Größe des frei zu gebenden Bereichs in Bytes an. Der Wert muss 4 KB ausgerichtet sein.

Unmap.Protection

Defines ist der Seitentabelleneintragsstatus nach dem Aufheben der Zuordnung, entweder Zero oder NoAccess.

Copy

Der Kopiervorgang kopiert alle Zuordnungen aus dem virtuellen GPU-Quelladressbereich in den Zielbereich. Der Quell- und der Zielbereich dürfen sich überschneiden. Beide Bereiche müssen zu einem reservierten virtuellen Adressbereich (null) gehören.

BaseAddress

Gibt die virtuelle Startadresse des virtuellen Quelladressbereichs an. Der Wert ist in Bytes und muss 4 KB ausgerichtet sein.

Copy.SourceAddress

Copy.SizeInBytes

Gibt die Größe des kopierten Bereichs in Bytes an. Der Wert muss 4 KB ausgerichtet sein.

Copy.DestAddress

Gibt die virtuelle Startadresse des virtuellen Zieladressbereichs an. Der Wert ist in Bytes und muss 4 KB ausgerichtet sein.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 10
Unterstützte Mindestversion (Server) Windows Server 2016
Kopfzeile d3dukmdt.h (einschließlich D3dumddi.h, D3dkmddi.h)

Weitere Informationen

pfnReserveGpuVirtualAddressCb

pfnUpdateGpuVirtualAddressCb