структура 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 BlockAccessMode : 2;
      ULONGLONG Reserved : 42;
    };
    ULONGLONG Flags;
  };
  union {
    ULONGLONG PageAddress;
    ULONGLONG PageTableAddress;
  };
} DXGK_PTE;

Члены

Valid

Если задано, это означает, что запись действительна. Доступ к недопустимой записи приводит к ошибке неустранимого адреса, если не задан флаг Ноль.

Zero

Если задано значение Valid = 1, доступ к записи приводит к возврату нулевого значения для доступа к памяти. Это используется для поддержки плиток ресурсов.

Поддерживается начиная с Windows 10.

CacheCoherent

Если задано, это означает, что страница памяти является последовательной между ЦП и GPU.

ReadOnly

Если задано, это означает, что страница памяти доступна только для чтения.

NoExecute

Если задано, это означает, что страница памяти содержит данные, которые не следует рассматривать как исполняемые команды.

Поддерживается начиная с Windows 10.

Segment

Отсчитываемый от нуля идентификатор сегмента памяти GPU, на котором расположена соответствующая страница памяти. Сегмент нуль зарезервирован для системной памяти.

LargePage

Бит можно задать только в том случае, если драйвер режима ядра задает DXGK_VIRTUALADDRESSCAPS::GpuMmu.крышка largePageSupported. Если задать адрес таблицы страницы (PageTableAddress + SegmentId) — это адрес памяти выделения. Размер выделения равен диапазону виртуальных адресов, охватываемого нижним уровнем таблицы страницы. Этот флаг нельзя задать для таблиц конечной страницы.

Поддерживается начиная с Windows 10.

PhysicalAdapterIndex

Определяет индекс физического адаптера в конфигурации связанного адаптера дисплея. PTEs таблиц страниц на одном физическом адаптере может указывать на память на другом физическом адаптере.

Поддерживается начиная с Windows 10.

PageTablePageSize

Для записи таблицы на уровне 1 определяется размер страниц конечной таблицы PTEs. Значение предоставляется перечислителем DXGK_PTE_PAGE_SIZE. Это значение следует игнорировать, если поддерживается двойной PTE.

Поддерживается начиная с Windows 10.

SystemReserved0

BlockAccessMode

Reserved

Зарезервировано для использования системы и равно нулю.

Flags

Несоположенное значение структуры.

PageAddress

Высокий 52-разрядный физический адрес 64-разрядного физического адреса страницы памяти. Низкий 12 бит равен нулю. Адрес является смещением от начала сегмента, определенного сегментаили системным адресом памяти.

PageTableAddress

Высокий 52-разрядный физический адрес 64-разрядного физического адреса таблицы страниц нижнего уровня. Низкий 12 бит равен нулю. Адрес является смещением от начала сегмента, определенного сегментаили системным адресом памяти.

Поддерживается начиная с Windows 10.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно в Windows 7 и более поздних версиях операционных систем Windows.
заголовка d3dukmdt.h (include D3dkmddi.h)