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) |