Freigeben über


DXGK_PTE Struktur (d3dukmdt.h)

Ein Seitentabelleneintrag (Page Table Entry, PTE) stellt eine physische Adresse einer Seite und andere Attribute bereit. Das genaue Format von PTE hängt von der Hardwareimplementierung ab.

Syntax

typedef struct _DXGK_PTE {
  union {
    struct {
      ULONGLONG Valid : 1;
      ULONGLONG Zero : 1;
      ULONGLONG CacheCoherent : 1;
      ULONGLONG ReadOnly : 1;
      ULONGLONG NoExecute : 1;
      ULONGLONG Segment : 5;
      ULONGLONG LargePage : 1;
      ULONGLONG PhysicalAdapterIndex : 6;
      ULONGLONG PageTablePageSize : 2;
      ULONGLONG SystemReserved0 : 1;
      ULONGLONG Reserved : 44;
    };
    ULONGLONG Flags;
  };
  union {
    ULONGLONG PageAddress;
    ULONGLONG PageTableAddress;
  };
} DXGK_PTE;

Member

Valid

Wenn festgelegt, gibt dies an, dass der Eintrag gültig ist. Der Zugriff auf einen ungültigen Eintrag führt zu einem nicht wiederherstellbaren Adressfehler, es sei denn, das Zero-Flag ist festgelegt.

Zero

Wenn sie mit Valid = 1 festgelegt ist, führt der Zugriff auf den Eintrag dazu, dass der Nullwert für den Speicherzugriff zurückgegeben wird. Dies wird verwendet, um gekachelte Ressourcen zu unterstützen.

Wird ab Windows 10 unterstützt.

CacheCoherent

Wenn festgelegt, gibt dies an, dass die Speicherseite zwischen CPU und GPU im Cache kohärent ist.

ReadOnly

Wenn festgelegt, gibt dies an, dass die Speicherseite schreibgeschützt ist.

NoExecute

Wenn festgelegt, gibt dies an, dass die Speicherseite Daten enthält, die nicht als ausführbare Befehle behandelt werden sollten.

Wird ab Windows 10 unterstützt.

Segment

Ein nullbasierter GPU-Speichersegmentbezeichner, auf dem sich die entsprechende Speicherseite befindet. Das Segment Null ist für den Systemspeicher reserviert.

LargePage

Das Bit kann nur festgelegt werden, wenn der Kernelmodustreiber die DXGK_VIRTUALADDRESSCAPS::GpuMmu festlegt. LargePageSupported cap. Beim Festlegen der Seitentabellenadresse (PageTableAddress + SegmentId) ist die Speicheradresse einer Zuordnung. Die Zuordnungsgröße entspricht dem virtuellen Adressbereich, der von der unteren Seitentabellenebene abgedeckt wird. Dieses Flag kann nicht für die Blattseitentabellen festgelegt werden.

Wird ab Windows 10 unterstützt.

PhysicalAdapterIndex

Definiert einen physischen Adapterindex in einer verknüpften Grafikkartenkonfiguration. PTEs von Seitentabellen auf einem physischen Adapter können auf den Arbeitsspeicher eines anderen physischen Adapters verweisen.

Wird ab Windows 10 unterstützt.

PageTablePageSize

Für den Seitentabelleneintrag der Ebene 1 definiert die Seitengröße der Blattseitentabellen-PTEs. Der Wert wird vom DXGK_PTE_PAGE_SIZE-Enumerator bereitgestellt. Dieser Wert sollte ignoriert werden, wenn Dual-PTE unterstützt wird.

Wird ab Windows 10 unterstützt.

SystemReserved0

Reserved

Reserviert für die Systemverwendung und wird auf Null festgelegt.

Flags

Der unmaskierte Wert der Struktur.

PageAddress

Die hohen 52 Bit der physischen 64-Bit-Adresse einer Speicherseite. Die niedrigen 12 Bits sind 0. Die Adresse ist ein Offset vom Anfang des Segments, definiert durch Segment oder eine Systemspeicheradresse.

PageTableAddress

Die hohen 52 Bit der physischen 64-Bit-Adresse einer unteren Seitentabelle. Die niedrigen 12 Bits sind 0. Die Adresse ist ein Offset vom Anfang des Segments, definiert durch Segment oder eine Systemspeicheradresse.

Wird ab Windows 10 unterstützt.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar in Windows 7 und höheren Versionen der Windows-Betriebssysteme.
Kopfzeile d3dukmdt.h (einschließlich D3dkmddi.h)