Partilhar via


estrutura DXGK_GPUMMUCAPS (d3dkmddi.h)

A estrutura DXGK_GPUMMUCAPS é usada pelo driver do modo kernel para expressar recursos de endereçamento de memória virtual.

Sintaxe

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;

Membros

ReadOnlyMemorySupported

Quando definido como 1, o driver dá suporte à proteção somente leitura em páginas de memória.

NoExecuteMemorySupported

Quando definido como 1, o driver dá suporte a não executar proteção em páginas de memória.

ZeroInPteSupported

Quando definido como 1, a GPU dá suporte ao sinalizador Zero DXGK_PTE. Isso se aplica a todos os níveis de tabela de página.

ExplicitPageTableInvalidation

Indica que todas as entradas de uma tabela de página ou diretório de página devem ser colocadas em um estado inválido explicitamente, por meio UpdatePageTable antes de serem liberadas. Por padrão, o gerenciador de memória de vídeo poderá liberar uma tabela de páginas, que contém entradas válidas anteriormente, se essas entradas não forem mais necessárias (por exemplo, liberar um grande intervalo de endereços virtuais de GPU, resultando na destruição de tabelas de páginas subjacentes).

Nota

Normalmente, esses sinalizadores são usados por um driver de software que precisa emular a tabela de páginas e precisam manter o controle das informações em uma base de entrada de tabela por página e exigem um par de inicialização/deinit claro para todas as atualizações de entrada de tabela de página.

CacheCoherentMemorySupported

Indica que o driver dá suporte ao CacheCoherent bits na entrada da tabela de páginas e pode fazer a transferência coerente de E/S para a memória do sistema.

PageTableUpdateRequireAddressSpaceIdle

Indica que a GPU não dá suporte à atualização de entradas de tabela de página ou à invalidação do buffer look-aside de tradução para um espaço de endereço atualmente usado por um mecanismo. Quando esses sinalizadores estiverem definidos, o gerenciador de memória de vídeo garantirá que todo o compartilhamento de contexto do espaço de endereço seja suspenso quando as entradas da tabela de páginas forem modificadas e quando o buffer look-aside de tradução for invalidado.

LargePageSupported

Quando definido como 1, todos os níveis de tabelas de página, exceto o folha um, dão suporte a páginas grandes (LargePage bit em DXGK_PTE).

DualPteSupported

Quando definida como 1, a GPU dá suporte a dois ponteiros para tabelas de página na tabela de páginas de nível um (tabela de páginas de 4 KB e tabela de páginas de 64 KB).

AllowNonAlignedLargePageAddress

Quando definido como 1, o Sistema Operacional é capaz de definir o sinalizador LargePage quando o endereço físico da entrada de página grande não está alinhado à cobertura da tabela de página folha. Disponível a partir do Windows 10 versão 1607 (WDDM 2.1).

SysMem64KBPageSupported

O driver fornece gerenciamento de segmento de memória em 64 KB. Disponível a partir do Windows 10 versão 1607 (WDDM 2.1).

InvalidTlbEntriesNotCached

Quando esse bit for definido, o driver não receberá chamadas para DxgkDdiBuildPagingBuffer para solicitações flushTlb para intervalos va que estão fazendo a transição de um estado inválido para válido. Espera-se que o TLB do hardware não armazene em cache traduções inválidas

Disponível a partir do Windows 10 versão 1903 (WDDM 2.6).

SysMemLargePageSupported

O driver fornece suporte de página grande. Disponível a partir do Windows Server 2022 (WDDM 2.9).

CachedPageTables

Há suporte para tabelas de páginas armazenadas em cache. Disponível a partir do WDDM 3.1.

Reserved

Reservado para uso do sistema; não use.

Value

O valor da estrutura da união expressa como um inteiro.

PageTableUpdateMode

Define o tipo de endereços usados em operações deDxgkDdiUpdatePageTable. Quando DXGK_PAGETABLEUPDATE_GPU_VIRTUAL for definido, toda a operação de paginação ocorrerá no espaço de endereço virtual do contexto do sistema. Quando os diretórios de página estão localizados em um segmento de memória de GPU local, o modo de atualização não pode ser definido como DXGK_PAGETABLEUPDATE_CPU_VIRTUAL.

VirtualAddressBitCount

O número de bits no endereço virtual da GPU.

LeafPageTableSizeFor64KPagesInBytes

O tamanho de uma tabela de página folha quando páginas de 64 KB são usadas. O tamanho deve ser um múltiplo do tamanho da página da CPU (4096).

PageTableLevelCount

O número de níveis de tabela de página com suporte. O valor mínimo é 2 (definido como DXGK_MIN_PAGE_TABLE_LEVEL_COUNT). O valor máximo é DXGK_MAX_PAGE_TABLE_LEVEL_COUNT.

Quando PageTableLevelCount é 2, a tabela de página raiz é dinamicamente redimensionável e o tamanho da tabela de página é determinado por meio de DxgkDdiGetRootPageTableSize. Quando PageTableLevelCount for maior que 2, todos os níveis de tabela de página têm um tamanho fixo, que é descrito por meio de DXGK_PAGE_TABLE_LEVEL_DESC::P ageTableSizeInBytes.

LegacyBehaviors

LegacyBehaviors.SourcePageTableVaInTransfer

Quando definido como 1, o gerenciador de memória de vídeo define endereço SourcePageTable em TransferVirtual durante a remoção da alocação.

LegacyBehaviors.Reserved

Reservado; não use.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows 10
servidor com suporte mínimo Windows Server 2016
cabeçalho d3dkmddi.h (inclua D3dkmddi.h)