Compartir a través de


estructura DXGK_GPUMMUCAPS (d3dkmddi.h)

El controlador en modo kernel usa la estructura DXGK_GPUMMUCAPS para expresar las funcionalidades de direccionamiento de memoria virtual.

Sintaxis

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;

Miembros

ReadOnlyMemorySupported

Cuando se establece en 1, el controlador admite la protección de solo lectura en páginas de memoria.

NoExecuteMemorySupported

Cuando se establece en 1, el controlador admite no ejecutar protección en páginas de memoria.

ZeroInPteSupported

Cuando se establece en 1, la GPU admite la marca DXGK_PTE Cero. Esto se aplica a todos los niveles de tabla de páginas.

ExplicitPageTableInvalidation

Indica que todas las entradas de una tabla de páginas o un directorio de página deben colocarse explícitamente en un estado no válido, a través de UpdatePageTable antes de liberarse. De forma predeterminada, el administrador de memoria de vídeo puede liberar una tabla de páginas, que contiene entradas válidas anteriormente, si estas entradas ya no son necesarias (por ejemplo, liberar un intervalo de direcciones virtuales de GPU grande, lo que da lugar a la destrucción de tablas de páginas subyacentes).

Nota

Normalmente, este indicador lo usa un controlador de software que necesita emular la tabla de páginas y debe realizar un seguimiento de la información sobre una base de entrada de tabla por página y requerir un par init/deinit claro para todas las actualizaciones de entrada de tabla de páginas.

CacheCoherentMemorySupported

Indica que el controlador admite el CacheCoherent bits en la entrada de la tabla de páginas y puede realizar una transferencia coherente de E/S a la memoria del sistema.

PageTableUpdateRequireAddressSpaceIdle

Indica que la GPU no admite la actualización de entradas de tabla de páginas ni la invalidación del búfer de búsqueda de traducción para un espacio de direcciones que está actualmente en uso por un motor. Cuando se establece esta marca, el administrador de memoria de vídeo garantizará que todo el contexto que comparte el espacio de direcciones se suspenda cuando se modifiquen las entradas de la tabla de páginas y cuando se invalide el búfer de búsqueda de traducción.

LargePageSupported

Cuando se establece en 1, todos los niveles de tablas de páginas, excepto la hoja uno, admiten páginas grandes (largePage bit en DXGK_PTE).

DualPteSupported

Cuando se establece en 1, la GPU admite dos punteros a tablas de páginas en la tabla de páginas de nivel uno (tabla de páginas de 4 KB y tabla de páginas de 64 KB).

AllowNonAlignedLargePageAddress

Cuando se establece en 1, el sistema operativo puede establecer la marca LargePage cuando la dirección física de la entrada de página grande no está alineada con la cobertura de la tabla de página hoja. Disponible a partir de Windows 10 versión 1607 (WDDM 2.1).

SysMem64KBPageSupported

El controlador proporciona administración de segmentos de memoria a 64 KB. Disponible a partir de Windows 10 versión 1607 (WDDM 2.1).

InvalidTlbEntriesNotCached

Cuando se establece este bit, el controlador no recibirá llamadas a DxgkDdiBuildPagingBuffer para las solicitudes FlushTlb para intervalos de VA que pasan de un estado no válido a válido. Se espera que el TLB del hardware no almacene en caché traducciones no válidas.

Disponible a partir de Windows 10 versión 1903 (WDDM 2.6).

SysMemLargePageSupported

El controlador proporciona compatibilidad con páginas grandes. Disponible a partir de Windows Server 2022 (WDDM 2.9).

CachedPageTables

Se admiten tablas de páginas almacenadas en caché. Disponible a partir de WDDM 3.1.

Reserved

Reservado para uso del sistema; no use.

Value

Valor de la estructura de la unión expresada como un entero.

PageTableUpdateMode

Define el tipo de direcciones que se usan en operaciones de DxgkDdiUpdatePageTable. Cuando se establece DXGK_PAGETABLEUPDATE_GPU_VIRTUAL, todas las operaciones de paginación se producirán en el espacio de direcciones virtuales del contexto del sistema. Cuando los directorios de página se encuentran en un segmento de memoria de GPU local, el modo de actualización no se puede establecer en DXGK_PAGETABLEUPDATE_CPU_VIRTUAL.

VirtualAddressBitCount

Número de bits en la dirección virtual de GPU.

LeafPageTableSizeFor64KPagesInBytes

Tamaño de una tabla de página hoja cuando se usan páginas de 64 KB. El tamaño debe ser un múltiplo de tamaño de página de CPU (4096).

PageTableLevelCount

Número de niveles de tabla de página admitidos. El valor mínimo es 2 (definido como DXGK_MIN_PAGE_TABLE_LEVEL_COUNT). El valor máximo es DXGK_MAX_PAGE_TABLE_LEVEL_COUNT.

Cuando pageTableLevelCount es 2, la tabla de página raíz se puede cambiar dinámicamente de tamaño y el tamaño de la tabla de páginas se determina a través de DxgkDdiGetRootPageTableSize. Cuando PageTableLevelCount es mayor que 2, todos los niveles de tabla de páginas tienen un tamaño fijo, que se describe a través de DXGK_PAGE_TABLE_LEVEL_DESC::P ageTableSizeInBytes.

LegacyBehaviors

LegacyBehaviors.SourcePageTableVaInTransfer

Cuando se establece en 1, el administrador de memoria de vídeo establece dirección SourcePageTable en TransferVirtual durante la expulsión de asignación.

LegacyBehaviors.Reserved

Reservado; no use.

Requisitos

Requisito Valor
cliente mínimo admitido Windows 10
servidor mínimo admitido Windows Server 2016
encabezado de d3dkmddi.h (incluya D3dkmddi.h)