struktur DXGK_GPUMMUCAPS (d3dkmddi.h)

Struktur DXGK_GPUMMUCAPS digunakan oleh driver mode kernel untuk mengekspresikan kemampuan alamat memori virtual.

Sintaks

typedef struct _DXGK_GPUMMUCAPS {
  union {
    struct {
      UINT ReadOnlyMemorySupported : 1;
      UINT NoExecuteMemorySupported : 1;
      UINT ZeroInPteSupported : 1;
      UINT ExplicitPageTableInvalidation : 1;
      UINT CacheCoherentMemorySupported : 1;
      UINT PageTableUpdateRequireAddressSpaceIdle : 1;
      UINT LargePageSupported : 1;
      UINT DualPteSupported : 1;
      UINT AllowNonAlignedLargePageAddress : 1;
      UINT SysMem64KBPageSupported : 1;
      UINT InvalidTlbEntriesNotCached : 1;
      UINT SysMemLargePageSupported : 1;
      UINT CachedPageTables : 1;
#if ...
      UINT Reserved : 19;
#elif
      UINT Reserved : 20;
#elif
      UINT Reserved : 21;
#elif
      UINT Reserved : 22;
#else
      UINT Reserved : 24;
#endif
    };
    UINT Value;
  };
  DXGK_PAGETABLEUPDATEMODE PageTableUpdateMode;
  UINT                     VirtualAddressBitCount;
  UINT                     LeafPageTableSizeFor64KPagesInBytes;
  UINT                     PageTableLevelCount;
  struct {
    UINT SourcePageTableVaInTransfer : 1;
    UINT Reserved : 31;
  } LegacyBehaviors;
} DXGK_GPUMMUCAPS;

Anggota

ReadOnlyMemorySupported

Ketika diatur ke 1, driver mendukung perlindungan baca-saja pada halaman memori.

NoExecuteMemorySupported

Ketika diatur ke 1, driver tidak mendukung perlindungan eksekusi pada halaman memori.

ZeroInPteSupported

Saat diatur ke 1, GPU mendukung bendera Zero DXGK_PTE . Ini berlaku untuk semua tingkat tabel halaman.

ExplicitPageTableInvalidation

Menunjukkan bahwa semua entri tabel halaman atau direktori halaman harus dimasukkan ke dalam status tidak valid secara eksplisit, melalui UpdatePageTable sebelum dibebaskan. Secara default, manajer memori video dapat membebaskan tabel halaman, yang berisi entri yang valid sebelumnya, jika entri ini tidak lagi diperlukan (mis. membebaskan rentang alamat virtual GPU besar yang mengakibatkan penghancuran tabel halaman yang mendasar).

Catatan

Bendera ini biasanya digunakan oleh driver perangkat lunak yang perlu meniru tabel halaman dan perlu melacak informasi berdasarkan entri tabel per halaman dan memerlukan pasangan init/deinit yang jelas untuk semua pembaruan entri tabel halaman.

CacheCoherentMemorySupported

Menunjukkan bahwa driver mendukung bit CacheCoherent dalam entri tabel halaman dan dapat melakukan transfer koheren I/O ke memori sistem.

PageTableUpdateRequireAddressSpaceIdle

Menunjukkan bahwa GPU tidak mendukung pembaruan entri tabel halaman atau membatalkan buffer look-aside terjemahan untuk ruang alamat yang saat ini digunakan oleh mesin. Ketika bendera ini diatur, manajer memori video akan memastikan bahwa semua konteks yang berbagi ruang alamat ditangguhkan ketika entri tabel halamannya dimodifikasi dan ketika buffer look-aside terjemahan tidak valid.

LargePageSupported

Saat diatur ke 1, semua tingkat tabel halaman, kecuali yang daun, mendukung halaman besar (bit LargePage di DXGK_PTE).

DualPteSupported

Saat diatur ke 1, GPU mendukung dua penunjuk ke tabel halaman di tabel halaman tingkat satu (tabel halaman 4 KB dan tabel halaman 64 KB).

AllowNonAlignedLargePageAddress

Ketika diatur ke 1, Sistem Operasi dapat mengatur bendera LargePage ketika alamat fisik entri halaman besar tidak selaras dengan cakupan tabel halaman daun. Tersedia mulai Windows 10 versi 1607 (WDDM 2.1).

SysMem64KBPageSupported

Driver menyediakan manajemen segmen memori pada 64KB. Tersedia mulai Windows 10 versi 1607 (WDDM 2.1).

InvalidTlbEntriesNotCached

Ketika bit ini diatur, driver tidak akan menerima panggilan ke DxgkDdiBuildPagingBuffer untuk permintaan FlushTlb untuk rentang VA yang beralih dari status yang tidak valid ke valid. Diharapkan bahwa TLB perangkat keras tidak menyimpan terjemahan yang tidak valid

Tersedia mulai Windows 10 versi 1903 (WDDM 2.6).

SysMemLargePageSupported

Driver menyediakan dukungan halaman besar. Tersedia mulai Windows Server 2022 (WDDM 2.9).

CachedPageTables

Tabel halaman singgahan didukung. Tersedia mulai dari WDDM 3.1.

Reserved

Dicadangkan untuk penggunaan sistem; jangan gunakan.

Value

Nilai struktur serikat yang dinyatakan sebagai bilangan bulat.

PageTableUpdateMode

Menentukan jenis alamat yang digunakan dalam operasi DxgkDdiUpdatePageTable . Ketika DXGK_PAGETABLEUPDATE_GPU_VIRTUAL diatur, semua operasi paging akan terjadi di ruang alamat virtual konteks sistem. Ketika direktori halaman terletak di segmen memori GPU lokal, mode pembaruan tidak dapat diatur ke DXGK_PAGETABLEUPDATE_CPU_VIRTUAL.

VirtualAddressBitCount

Jumlah bit dalam alamat virtual GPU.

LeafPageTableSizeFor64KPagesInBytes

Ukuran tabel halaman daun saat halaman 64KB digunakan. Ukurannya harus kelipatan ukuran halaman CPU (4096).

PageTableLevelCount

Jumlah tingkat tabel halaman yang didukung. Nilai minimum adalah 2 (didefinisikan sebagai DXGK_MIN_PAGE_TABLE_LEVEL_COUNT). Nilai maksimum adalah DXGK_MAX_PAGE_TABLE_LEVEL_COUNT.

Ketika PageTableLevelCount adalah 2, tabel halaman akar dapat diubah ukurannya secara dinamis dan ukuran tabel halaman ditentukan melalui DxgkDdiGetRootPageTableSize. Ketika PageTableLevelCount lebih besar dari 2, semua tingkat tabel halaman memiliki ukuran tetap, yang dijelaskan melalui DXGK_PAGE_TABLE_LEVEL_DESC::P ageTableSizeInBytes.

LegacyBehaviors

LegacyBehaviors.SourcePageTableVaInTransfer

Saat diatur ke 1, manajer memori video mengatur alamat SourcePageTable di TransferVirtual selama pengeluaran alokasi.

LegacyBehaviors.Reserved

Dipesan; jangan gunakan.

Persyaratan

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