struktur D3DDDI_MAPGPUVIRTUALADDRESS (d3dukmdt.h)
Struktur D3DDDI_MAPGPUVIRTUALADDRESS digunakan dengan pfnMapGpuVirtualAddressCb untuk memetakan rentang alamat virtual GPU ke rentang alokasi tertentu atau untuk menempatkannya ke status Tidak Valid atau Nol .
Sintaks
typedef struct D3DDDI_MAPGPUVIRTUALADDRESS {
D3DKMT_HANDLE hPagingQueue;
D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS BaseAddress;
D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS MinimumAddress;
D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS MaximumAddress;
D3DKMT_HANDLE hAllocation;
D3DKMT_ALIGN64 D3DGPU_SIZE_T OffsetInPages;
D3DKMT_ALIGN64 D3DGPU_SIZE_T SizeInPages;
D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE Protection;
D3DKMT_ALIGN64 UINT64 DriverProtection;
UINT Reserved0;
D3DKMT_ALIGN64 UINT64 Reserved1;
D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS VirtualAddress;
D3DKMT_ALIGN64 UINT64 PagingFenceValue;
} D3DDDI_MAPGPUVIRTUALADDRESS;
Anggota
hPagingQueue
Handel untuk antrean halaman perangkat, digunakan untuk operasi.
BaseAddress
(Opsional) Jika non-NULL, manajer memori video akan mencoba menggunakan alamat ini sebagai alamat dasar untuk pemetaan. Jika rentang dari BaseAddress ke Ukuran BaseAddress+ tidak gratis, rentang tersebut harus termasuk dalam rentang, yang sebelumnya diperoleh dengan memanggil pfnReserveGpuVirtualAddressCb ataupfnMapGpuVirtualAddressCb.
Nilai BaseAddress dalam byte dan harus diratakan ke batas halaman CPU. Jika NULL ditentukan, manajer memori video akan memilih alamat dasar untuk alokasi dalam MinimumAddress dan MaximumAddress yang ditentukan.
MinimumAddress
(Opsional) Menentukan alamat virtual GPU minimum yang perlu dipertimbangkan untuk rentang yang dipetakan.
Nilai MinimumAddress dalam byte dan harus diratakan ke halaman 4KB. Parameter ini diabaikan ketika BaseAddress != NULL.
MaximumAddress
(Opsional) Menentukan alamat virtual GPU maksimum yang perlu dipertimbangkan untuk rentang yang dipetakan. manajer memori video akan menjamin bahwaUkuran<BaseAddress+= MaximumAddress. Jika MaximumAddress diatur ke NULL, manajer memori video tidak akan menerapkan batas apa pun.
Nilai MaximumAddress dalam byte dan harus diratakan ke halaman 4KB. Parameter ini diabaikan ketika BaseAddress != NULL.
hAllocation
Tangani alokasi yang sedang dipetakan ke ruang alamat virtual GPU. Harus NULL ketika Protection.NoAccess atau Protection.Zero ditentukan.
OffsetInPages
Menentukan offset, dalam 4KB, ke halaman awal dalam alokasi yang ditentukan yang harus dipetakan.
SizeInPages
Menentukan ukuran rentang yang akan dipetakan, dalam halaman 4KB.
Protection
Struktur D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE yang menentukan perlindungan pada alamat virtual GPU yang dipetakan.
DriverProtection
Menentukan nilai perlindungan khusus driver 64-bit yang terkait dengan rentang VA yang dialokasikan. Perlindungan driver yang ditentukan akan digunakan dalam panggilan ke DxgkDdiUpdatePageTable untuk entri tabel halaman yang sesuai dengan rentang alamat virtual ini.
Reserved0
Anggota ini dicadangkan dan harus diatur ke nol.
Reserved1
Anggota ini dicadangkan dan harus diatur ke nol.
VirtualAddress
Alamat virtual yang ditetapkan ke alokasi.
PagingFenceValue
Nilai paging fence perangkat yang disinyalir manajer memori video ketika operasi peta selesai pada GPU. Driver mode pengguna harus memastikan bahwa pagar ini dihentikan atau secara eksplisit menunggu CPU atau GPU pada pagar tersebut sebelum memungkinkan GPU mengakses rentang yang dipetakan atau kesalahan yang tidak dapat dipulihkan mungkin terjadi. Nilai pagar nol mungkin dikembalikan, yang berarti bahwa operasi sudah selesai.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 10 |
Server minimum yang didukung | Server Windows 2016 |
Header | d3dukmdt.h (termasuk D3dumddi.h, D3dkmddi.h) |