Bagikan melalui


struktur D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION (d3dukmdt.h)

D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION menjelaskan operasi pembaruan alamat virtual.

Sintaks

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;

Anggota

OperationType

Map

Memetakan rentang alamat virtual yang diberikan ke rentang alokasi yang diberikan. Alokasi tidak harus residen pada saat pengajuan atau pada saat pemetaan. Perlindungan baca-tulis diatur ke halaman. DriverProtection untuk halaman diatur ke nol.

Map.BaseAddress

Menentukan BaseAddress dari rentang alamat virtual GPU untuk diperbarui. Nilainya dalam byte dan harus selaras 4KB.

Seluruh rentang dari BaseAddress ke BaseAddress+SizeInBytes harus dalam status dicadangkan (nol) atau dipetakan , atau operasi pfnUpdateGpuVirtualAddressCb akan gagal. Rentang alamat virtual untuk semua operasi harus termasuk dalam rentang alamat virtual yang dicadangkan oleh panggilan pfnReserveGpuVirtualAddressCb yang sama.

Map.SizeInBytes

Menentukan ukuran, dalam byte, untuk rentang yang sedang diperbarui. Nilai harus diratakan 4KB.

Map.hAllocation

Menentukan alokasi yang perlu dipetakan rentang.

Map.AllocationOffsetInBytes

Menentukan offset, dalam byte, ke halaman pertama dalam alokasi untuk memetakan. Nilai harus diratakan 4KB.

Map.AllocationSizeInBytes

Menentukan ukuran rentang alokasi yang akan dipetakan, dalam byte. Nilai harus diratakan 4KB dan harus kurang dari Map.SizeInBytes. Jika nilai ini nol, Map.SizeInBytes digunakan.

Ketika nilai ini daripada Map.SizeInBytes, Map.SizeInBytes harus kelipatannya. Dalam hal ini, rentang alamat virtual Map.SizeInBytes/Map.AllocationSizeInBytes akan dipetakan ke rentang alokasi yang sama.

MapProtect

Memetakan rentang alamat virtual yang diberikan ke rentang alokasi yang diberikan. Alokasi tidak harus residen pada saat pengajuan atau pada saat pemetaan. Perlindungan halaman ditentukan dalam operasi.

MapProtect.BaseAddress

Menentukan BaseAddress dari rentang alamat virtual GPU untuk diperbarui. Nilainya dalam byte dan harus selaras 4KB.

Seluruh rentang dari BaseAddress ke BaseAddress+SizeInBytes harus dalam status dicadangkan (nol) atau dipetakan , atau pfnUpdateGpuVirtualAddressCb akan gagal. Rentang alamat virtual untuk semua operasi harus termasuk dalam rentang alamat virtual yang dicadangkan oleh panggilan pfnReserveGpuVirtualAddressCb yang sama.

MapProtect.SizeInBytes

Menentukan ukuran, dalam byte, untuk rentang yang sedang diperbarui. Nilai harus diratakan 4KB.

MapProtect.hAllocation

Menentukan alokasi yang perlu dipetakan rentang.

MapProtect.AllocationOffsetInBytes

Menentukan offset, dalam byte, ke halaman pertama dalam alokasi untuk memetakan. Nilai harus diratakan 4KB.

MapProtect.AllocationSizeInBytes

Menentukan ukuran rentang alokasi yang akan dipetakan, dalam byte. Nilai harus diratakan 4KB dan harus kurang dari Peta. SizeInBytes. Jika nilai ini nol, Map.SizeInBytes digunakan.

Ketika nilai ini kurang dari Map.SizeInBytes, Map.SizeInBytes harus kelipatannya. Dalam hal ini, rentang alamat virtual Map.SizeInBytes/Map.AllocationSizeInBytes akan dipetakan ke rentang alokasi yang sama.

MapProtect.Protection

Menentukan perlindungan yang ditentukan API untuk halaman.

MapProtect.DriverProtection

Menentukan perlindungan khusus driver untuk halaman tersebut.

Unmap

Menempatkan rentang alamat virtual yang ditentukan ke status nol atau ke status tidak valid .

Unmap.BaseAddress

Menentukan BaseAddress dari rentang alamat virtual GPU untuk dimasukkan kembali ke status nol . Nilainya dalam byte dan harus selaras 4KB.

Unmap.SizeInBytes

Menentukan ukuran, dalam byte, agar rentang dibebaskan. Nilai harus diratakan 4KB.

Unmap.Protection

Menentukan adalah status entri tabel halaman setelah tidak dipetakan, baik Nol atau NoAccess.

Copy

Operasi salin menyalin semua pemetaan dari rentang alamat virtual GPU sumber ke rentang tujuan. Rentang sumber dan tujuan diizinkan untuk bersinggungan. Kedua rentang harus termasuk dalam rentang alamat virtual yang dipesan (nol).

BaseAddress

Menentukan alamat virtual awal dari rentang alamat virtual sumber. Nilainya dalam byte dan harus selaras 4KB.

Copy.SourceAddress

Copy.SizeInBytes

Menentukan ukuran, dalam byte, untuk rentang yang sedang disalin. Nilai harus diratakan 4KB.

Copy.DestAddress

Menentukan alamat virtual awal dari rentang alamat virtual tujuan. Nilainya dalam byte dan harus selaras 4KB.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 10
Server minimum yang didukung Server Windows 2016
Header d3dukmdt.h (termasuk D3dumddi.h, D3dkmddi.h)

Lihat juga

pfnReserveGpuVirtualAddressCb

pfnUpdateGpuVirtualAddressCb