struktur DXGK_BUILDPAGINGBUFFER_UPDATEPAGETABLE (d3dkmddi.h)

DXGK_BUILDPAGINGBUFFER_UPDATEPAGETABLE digunakan sebagai bagian dari operasi pembaruan tabel halaman.

Sintaks

typedef struct _DXGK_BUILDPAGINGBUFFER_UPDATEPAGETABLE {
  UINT                        PageTableLevel;
  HANDLE                      hAllocation;
  DXGK_PAGETABLEUPDATEADDRESS PageTableAddress;
  DXGK_PTE                    *pPageTableEntries;
  UINT                        StartIndex;
  UINT                        NumPageTableEntries;
  UINT                        Reserved0;
  DXGK_UPDATEPAGETABLEFLAGS   Flags;
  UINT64                      DriverProtection;
  UINT64                      AllocationOffsetInBytes;
  HANDLE                      hProcess;
  DXGK_PAGETABLEUPDATEMODE    UpdateMode;
  DXGK_PTE                    *pPageTableEntries64KB;
  D3DGPU_VIRTUAL_ADDRESS      FirstPteVirtualAddress;
} DXGK_BUILDPAGINGBUFFER_UPDATEPAGETABLE;

Anggota

PageTableLevel

Tingkat tabel halaman, yang diperbarui.

hAllocation

Handel driver mode kernel dari alokasi, yang dipetakan oleh entri tabel halaman. Handel dikembalikan oleh driver mode kernel dari DxgkDdiCreateAllocation. Handel dapat berupa NULL untuk alokasi, yang tidak memiliki handel drver mode kernel (tabel halaman, direktori halaman, dll.).

PageTableAddress

Alamat tabel halaman yang akan diperbarui. Jika DXGK_VIRTUALADDRESSCAPS:: PageTableUpdateModeDXGK_PAGETABLEUPDATE_CPU_VIRTUAL, alamat virtual CPU berada di bidang CpuVirtual . Jika DXGK_VIRTUALADDRESSCAPS:: PageTableUpdateModeDXGK_PAGETABLEUPDATE_GPU_VIRTUAL, alamat virtual GPU berada di bidang GpuVirtual . Jika DXGK_VIRTUALADDRESSCAPS:: PageTableUpdateModeDXGK_PAGETABLEUPDATE_GPU_PHYSICAL, alamat fisik GPU berada di bidang GpuPhysical .

pPageTableEntries

Entri yang perlu disalin. Indeks nol dalam array pPageTableEntries sesuai dengan StartIndex di array entri tabel halaman driver.

StartIndex

Indeks awal entri tabel halaman dalam tabel halaman tempat entri harus disalin. Indeks array entri tabel halaman berbasis nol.

NumPageTableEntries

Jumlah entri yang perlu disalin.

Reserved0

Anggota ini dicadangkan dan harus diatur ke nol.

Flags

DXGK_UPDATEPAGETABLEFLAGS struktur yang menjelaskan operasi pembaruan.

DriverProtection

Diteruskan oleh UMD di MapGpuVirtualAddressRangeCb.

AllocationOffsetInBytes

Ketika hAllocation non-NULL, bidang ini menentukan offset relatif, dalam byte, dari awal alokasi ke halaman pertama yang ditargetkan oleh operasi pembaruan ini. Jika pembaruan menargetkan beberapa halaman dari hAllocation, halaman tersebut dijamin berurutan. Misalnya, manajer memori video mungkin memperbarui alamat virtual GPU ke halaman 4,5,6,7 dalam hAllocation. Tidak akan pernah ada kasus di mana driver akan melihat satu operasi pembaruan yang menargetkan halaman non berurutan (misalnya 4,5,7). Perhatikan bahwa meskipun halaman dijamin berurutan dari sudut pandang alokasi, halaman tersebut mungkin tidak berdampingan secara fisik dalam memori.

hProcess

Handel proses driver mode kernel untuk proses yang entri tabel halamannya diperbarui. Ini adalah nilai yang dikembalikan dari DxgkDdiCreateProcess.

UpdateMode

Menentukan arti PageTableAddress. Saat menginisialisasi tabel halaman untuk proses paging, mode pembaruan selalu DXGK_PAGETABLEUPDATE_CPU_VIRTUAL dan pDmaBuffer diatur ke NULL. Dalam hal ini driver harus segera memperbarui tabel halaman. Dalam kasus lain UpdateMode diatur ke nilai , yang ditentukan dalam DXGK_VIRTUALADDRESSCAPS::GpuMmu.PageTableUpdateMode.

Saat memperbarui entri tabel halaman untuk tabel halaman daun, manajer memori video mengasumsikan bahwa setiap entri mencakup halaman 4KB. Jika halaman GPU lebih besar (4 KB * 2n), manajer memori video akan menyediakan entri dalam array, yang menunjuk dalam halaman GPU. Driver mode kernel mungkin hanya perlu menginisialisasi entri tabel halaman, yang menunjuk ke awal halaman GPU. Gambar berikut mengilustrasikan ini untuk kasus ketika halaman GPU adalah 16 KB.

pPageTableEntries64KB

Entri yang perlu disalin dari tabel halaman 64KB. Indeks nol dalam array pPageTableEntries sesuai dengan StartIndex di array entri tabel halaman driver. Array harus digunakan hanya ketika batas DXGK_GPUMMUCAPS::D ualPteSupported diatur.

FirstPteVirtualAddress

Alamat virtual GPU yang dipetakan oleh entri tabel halaman pertama yang diperbarui.

Persyaratan

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