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)

Lihat juga

D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE

D3DKMTMapGpuVirtualAddress

DxgkDdiUpdatePageTable

pfnMapGpuVirtualAddressCb

pfnReserveGpuVirtualAddressCb