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