DXGK_PTE结构(d3dukmdt.h)

页表条目(PTE)提供页面和其他属性的物理地址。 PTE 的确切格式取决于硬件实现。

语法

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;

成员

Valid

设置后,这表示条目有效。 访问无效条目会导致无法恢复的地址错误,除非设置了 Zero 标志。

Zero

如果设置为 有效 = 1,则对条目的访问会导致返回内存访问的零值。 这用于支持平铺资源。

从 Windows 10 开始支持。

CacheCoherent

设置时,这表示内存页在 CPU 和 GPU 之间是一致的缓存。

ReadOnly

设置后,这表示内存页为只读。

NoExecute

设置后,这表示内存页包含不应被视为可执行命令的数据。

从 Windows 10 开始支持。

Segment

一个从零开始的 GPU 内存段标识符,位于相应的内存页。 段零是为系统内存保留的。

LargePage

仅当内核模式驱动程序设置 DXGK_VIRTUALADDRESSCAPS::GpuMmu时,才能设置位。LargePageSupported 上限。 设置页表地址时(PageTableAddress + SegmentId)是分配的内存地址。 分配大小等于虚拟地址范围,由较低页表级别涵盖。 无法为叶页表设置此标志。

从 Windows 10 开始支持。

PhysicalAdapterIndex

在链接的显示适配器配置中定义物理适配器索引。 一个物理适配器上的页表的 PTE 可以指向另一个物理适配器上的内存。

从 Windows 10 开始支持。

PageTablePageSize

对于级别 1 页表条目,定义叶页表 PTE 的页面大小。 该值由 DXGK_PTE_PAGE_SIZE 枚举器提供。 支持双 PTE 时,应忽略此值。

从 Windows 10 开始支持。

SystemReserved0

Reserved

保留供系统使用,并将设置为零。

Flags

结构的未屏蔽值。

PageAddress

内存页 64 位物理地址的高 52 位。 低 12 位为零。 该地址是段开头的偏移量,由 或系统内存地址定义。

PageTableAddress

较低页表的 64 位物理地址的高 52 位。 低 12 位为零。 该地址是段开头的偏移量,由 或系统内存地址定义。

从 Windows 10 开始支持。

要求

要求 价值
最低支持的客户端 在 Windows 7 及更高版本的 Windows作系统中可用。
标头 d3dukmdt.h (包括 D3dkmddi.h)