estrutura DXGK_DRIVERCAPS (d3dkmddi.h)

A estrutura DXGK_DRIVERCAPS descreve as funcionalidades de um driver de miniporto de exibição que o driver fornece por meio de uma chamada para sua função DxgkDdiQueryAdapterInfo .

Sintaxe

typedef struct _DXGK_DRIVERCAPS {
  [out] PHYSICAL_ADDRESS                   HighestAcceptableAddress;
  [out] UINT                               MaxAllocationListSlotId;
  [out] SIZE_T                             ApertureSegmentCommitLimit;
  [out] UINT                               MaxPointerWidth;
  [out] UINT                               MaxPointerHeight;
  [out] DXGK_POINTERFLAGS                  PointerCaps;
  [out] UINT                               InterruptMessageNumber;
  [out] UINT                               NumberOfSwizzlingRanges;
  [out] UINT                               MaxOverlays;
  union {
    [out] DXGK_GAMMARAMPCAPS      GammaRampCaps;
    [out] DXGK_COLORTRANSFORMCAPS ColorTransformCaps;
  };
  [out] DXGK_PRESENTATIONCAPS              PresentationCaps;
  [out] UINT                               MaxQueuedFlipOnVSync;
  [out] DXGK_FLIPCAPS                      FlipCaps;
  [out] DXGK_VIDSCHCAPS                    SchedulingCaps;
  [out] DXGK_VIDMMCAPS                     MemoryManagementCaps;
  [out] DXGK_GPUENGINETOPOLOGY             GpuEngineTopology;
  [out] DXGK_WDDMVERSION                   WDDMVersion;
        DXGK_VIRTUALADDRESSCAPS_DEPRECATED Reserved;
        DXGK_DMABUFFERCAPS_DEPRECATED      Reserved1;
  [out] D3DKMDT_PREEMPTION_CAPS            PreemptionCaps;
  [out] BOOLEAN                            SupportNonVGA;
  [out] BOOLEAN                            SupportSmoothRotation;
  [out] BOOLEAN                            SupportPerEngineTDR;
  [out] BOOLEAN                            SupportDirectFlip;
  [out] BOOLEAN                            SupportMultiPlaneOverlay;
  [out] BOOLEAN                            SupportRuntimePowerManagement;
  [out] BOOLEAN                            SupportSurpriseRemovalInHibernation;
  [out] BOOLEAN                            HybridDiscrete;
  [out] UINT                               MaxOverlayPlanes;
        BOOLEAN                            HybridIntegrated;
        D3DGPU_VIRTUAL_ADDRESS             InternalGpuVirtualAddressRangeStart;
        D3DGPU_VIRTUAL_ADDRESS             InternalGpuVirtualAddressRangeEnd;
        BOOLEAN                            SupportSurpriseRemoval;
  [out] BOOLEAN                            SupportMultiPlaneOverlayImmediateFlip;
  [out] BOOLEAN                            CursorScaledWithMultiPlaneOverlayPlane0;
        BOOLEAN                            HybridAcpiChainingRequired;
  [out] UINT                               MaxQueuedMultiPlaneOverlayFlipVSync;
  union {
    struct {
      UINT SupportContextlessPresent : 1;
      UINT Detachable : 1;
      UINT VirtualGpuOnly : 1;
      UINT ComputeOnly : 1;
      UINT IndependentVidPnVSyncControl : 1;
      UINT NoHybridDiscreteDListDllSupport : 1;
      UINT DisplayableSupport : 1;
#if ...
      UINT Reserved : 25;
#elif
      UINT Reserved : 26;
#elif
      UINT Reserved : 27;
#elif
      UINT Reserved : 28;
#elif
      UINT Reserved : 29;
#else
      UINT Reserved : 30;
#endif
    };
          UINT Value;
  } MiscCaps;
        UINT                               MaxHwQueuedFlips;
        DXGK_HWQUEUEDFLIP_CAPS             HwQueuedFlipCaps;
} DXGK_DRIVERCAPS;

Membros

[out] HighestAcceptableAddress

Um tipo de dados PHYSICAL_ADDRESS (que é definido como LARGE_INTEGER) que indica o endereço físico mais aceitável da memória do sistema (RAM) a ser usado.

[out] MaxAllocationListSlotId

O número máximo de identificadores de slot de lista de alocação. Um slot de lista de alocação representa onde uma alocação é direcionada em buffer de DMA (acesso direto à memória).

[out] ApertureSegmentCommitLimit

O número máximo de bytes de memória física que o driver de miniporto de exibição dá suporte para mapeamento em um segmento de abertura. O gerenciador de memória de vídeo não mapeará mais memória física em um segmento de abertura do que o limite especificado por ApertureSegmentCommitLimit .

[out] MaxPointerWidth

A largura máxima do ponteiro do mouse, em pixels.

[out] MaxPointerHeight

A altura máxima do ponteiro do mouse, em linhas de verificação.

[out] PointerCaps

Uma estrutura de DXGK_POINTERFLAGS que identifica os recursos do ponteiro do mouse, em sinalizadores de campo de bit, aos quais o driver pode dar suporte.

[out] InterruptMessageNumber

O número da mensagem usado se forem usadas interrupções sinalizadas por mensagem e o driver chamar a função DxgkCbNotifyInterrupt do manipulador de interrupção correspondente a um número de mensagem fixo.

[out] NumberOfSwizzlingRanges

O número de intervalos de swizzling aos quais o driver pode dar suporte.

[out] MaxOverlays

O número máximo de sobreposições às quais o driver pode dar suporte.

[out] GammaRampCaps

Uma estrutura DXGK_GAMMARAMPCAPS que identifica os recursos de rampa de gama, em sinalizadores de campo de bits, aos quais o driver pode dar suporte.

[out] ColorTransformCaps

Sinalizadores para descrever as funcionalidades de transformação de espaço gama e de cores dos pipelines de exibição. OBSERVAÇÃO: esse campo substitui o GammaRampCaps na versão pré-WDDM 2.2 dessa estrutura.

[out] PresentationCaps

Uma estrutura DXGK_PRESENTATIONCAPS que identifica os recursos de apresentação, em sinalizadores de campo de bits, aos quais o driver pode dar suporte.

[out] MaxQueuedFlipOnVSync

O número de inversãos que podem ser enfileiradas e pendentes no hardware gráfico. Cada inversão é travada em um DAC (conversor digital para analógico) em cada interrupção VSync, em ordem, à medida que o hardware gráfico enfileira a inversão.

[out] FlipCaps

Uma estrutura DXGK_FLIPCAPS que identifica os recursos de inversão, em sinalizadores de campo de bit, aos quais o driver pode dar suporte.

[out] SchedulingCaps

Uma estrutura DXGK_VIDSCHCAPS que identifica os recursos de agendamento da GPU (unidade de processamento gráfico), em sinalizadores de campo de bit, aos quais o driver pode dar suporte.

[out] MemoryManagementCaps

Uma estrutura DXGK_VIDMMCAPS que identifica os recursos de gerenciamento de memória de vídeo aos quais o driver pode dar suporte.

[out] GpuEngineTopology

Uma estrutura DXGK_GPUENGINETOPOLOGY que descreve a topologia do mecanismo de GPU à qual o driver pode dar suporte.

[out] WDDMVersion

Um valor DXGK_WDDMVERSION que identifica a versão do WDDM. Com suporte a partir do Windows 7.

Se um driver der suporte a recursos do Windows 7 ou posteriores (DXGKDDI_INTERFACE_VERSION ≥ DXGKDDI_INTERFACE_VERSION_WIN7), esse membro será reservado e deverá ser definido como zero.

Para drivers mais antigos que não dão suporte a recursos do Windows 7 ou posteriores (DXGKDDI_INTERFACE_VERSION < DXGKDDI_INTERFACE_VERSION_WIN7):

  • Para compilar o driver com o WDK do Windows 7 (versão 7600), defina esse membro como DXGKDDI_WDDMv1.
  • Para compilar o driver com o WDK do Windows 8, defina esse membro como DXGKDDI_WDDMv1_2.

Reserved

Reservado.

Reserved1

Reservado.

[out] PreemptionCaps

Uma estrutura D3DKMDT_PREEMPTION_CAPS que descreve os recursos para a preempção de solicitações gráficas de GPU compatíveis com o driver.

Com suporte a partir do Windows 8.

[out] SupportNonVGA

Se TRUE, o driver dá suporte à redefinição do dispositivo de exibição e à liberação da propriedade do dispositivo post (teste automático) de ativação atual usando a função DxgkDdiStopDeviceAndReleasePostDisplayOwnership .

Com suporte a partir do Windows 8.

[out] SupportSmoothRotation

Se TRUE, o driver dá suporte à atualização da rotação de caminho no adaptador usando a função DxgkDdiUpdateActiveVidPnPresentPath , sem exigir que um novo VidPN seja criado e definido.

Com suporte a partir do Windows 8.

[out] SupportPerEngineTDR

Se TRUE, o driver dá suporte à redefinição de mecanismos de GPU individuais.

Se esse membro estiver definido, o driver de miniporto de exibição deverá implementar as funções DxgkDdiQueryDependentEngineGroup, DxgkDdiQueryEngineStatus e DxgkDdiResetEngine .

Com suporte a partir do Windows 8.

[out] SupportDirectFlip

Se TRUE, o driver dá suporte à criação e abertura de alocações primárias gerenciadas compartilhadas. Um valor true também indica o seguinte:

  • O driver de miniporto de exibição garante que, quando a função DxgkDdiSetVidPnSourceAddress for chamada, o driver não permitirá que a memória de vídeo seja invertida para uma alocação incompatível.
  • O driver de modo de usuário valida os recursos do Direct Flip antes que o DWM (Gerenciador do Windows da Área de Trabalho) os use.

Somente o DWM pode inverter a memória de vídeo para recursos do Direct Flip. O DWM valida esses recursos usando a função CheckDirectFlipSupport no modo de usuário.

Com suporte a partir do Windows 8.

[out] SupportMultiPlaneOverlay

Se TRUE, o driver de miniporta de exibição dá suporte a sobreposições multiplane e o driver também deve definir um valor para o membro MaxOverlayPlanes . Se FALSE, o subsistema de kernel de elementos gráficos DirectX não chamará funções de sobreposição multiplano.

Suporte começando com Windows 8.1.

[out] SupportRuntimePowerManagement

Se TRUE, o driver de miniporta de exibição dá suporte ao gerenciamento de energia em tempo de execução.

Se esse membro estiver definido, o driver de miniporto de exibição deverá implementar as funções DxgkDdiSetPowerComponentFState e DxgkDdiPowerRuntimeControlRequest .

Com suporte a partir do Windows 8.

[out] SupportSurpriseRemovalInHibernation

Se TRUE, o driver de miniporto de exibição dá suporte à limpeza de recursos de software depois que um dispositivo de exibição externo no modo de hibernação é desconectado do sistema.

Se esse membro for definido, o driver de miniporto de exibição deverá implementar a função DxgkDdiNotifySurpriseRemoval com o parâmetro RemovalType definido como DxgkRemovalHibernation.

Para obter mais informações, consulte Usando recursos de adaptador cruzado em um sistema híbrido.

Com suporte a partir do Windows 8.

[out] HybridDiscrete

Se TRUE, o driver de miniporta de exibição será uma GPU discreta em um sistema híbrido.

Se esse membro estiver definido, o driver de miniporta de exibição deverá:

  • suporte ao WDDM 1.3
  • dar suporte a recursos de adaptador cruzado
  • não têm saídas de exibição

Para obter mais informações, consulte Usando recursos de adaptador cruzado em um sistema híbrido.

Suporte começando com Windows 8.1.

[out] MaxOverlayPlanes

Se SupportRuntimePowerManagement for TRUE, o driver de miniporto de exibição deverá definir MaxOverlayPlanes como o número máximo de planos de sobreposição que podem ser exibidos simultaneamente em uma única saída, incluindo a superfície primária, para que ele possa dar suporte. Se o número de planos disponíveis for alterado quando o modo operacional for alterado, o driver deverá usar um número que reflita o melhor cenário.

Suporte começando com Windows 8.1.

HybridIntegrated

Indica se a GPU atual é híbrida.

InternalGpuVirtualAddressRangeStart

Início do intervalo de endereços virtuais da GPU interna.

InternalGpuVirtualAddressRangeEnd

Término do intervalo de endereços virtuais da GPU interna.

SupportSurpriseRemoval

Se TRUE, o driver de miniporta de exibição dá suporte à remoção surpresa.

[out] SupportMultiPlaneOverlayImmediateFlip

Se TRUE, o driver de miniporta de exibição dá suporte a inversãos imediatas para um plano de sobreposição multiplano, desde que a única alteração de valor seja o endereço físico a ser exibido.

[out] CursorScaledWithMultiPlaneOverlayPlane0

Se TRUE, o hardware de exibição sempre aplicará o mesmo fator de dimensionamento ao cursor de hardware que é aplicado ao plano 0 quando o alongamento de sobreposição de vários planos por plano for aplicado.

HybridAcpiChainingRequired

Indica que esse driver discreto híbrido requer o encadeamento de eventos ACPI disparados no adaptador integrado.

[out] MaxQueuedMultiPlaneOverlayFlipVSync

Indica que o número máximo de atualizações para um único plano pode ser feito em um único período vsync, em que a atualização mais recente substitui a atualização anterior. Se um driver der suporte à fila de inversão de hardware, o sistema operacional ignorará esse valor.

MiscCaps

Funcionalidades diversas.

MiscCaps.SupportContextlessPresent

Dá suporte ao contexto nulo em chamadas DDI. Quando esse valor for definido, o sistema operacional passará o contexto NULL nos DDIs relacionados presentes. Com suporte a partir do WDDM 2.4.

MiscCaps.Detachable

Desanexável, ou seja, hot-pluggable. Os drivers definirão esse bit durante a inicialização do adaptador se o adaptador for conectável a quente. Com suporte a partir do WDDM 2.4.

MiscCaps.VirtualGpuOnly

O adaptador não deve ser usado por aplicativos Direct3D no host. Com suporte a partir do WDDM 2.5.

MiscCaps.ComputeOnly

Dá suporte a dispositivos Compute-Only renderizando os recursos de dispositivo somente renderização do WDDM. Com suporte a partir do Windows 10, versão 1901 (WDDM 2.6)

MiscCaps.IndependentVidPnVSyncControl

Os drivers que definem essa funcionalidade devem ler o VidPnSourceId especificado em DdiControlInterrupt3 e controlar o VSync no VidPnSourceId mencionado. Com suporte a partir do Windows 10, versão 2004 (WDDM 2.7).

MiscCaps.NoHybridDiscreteDListDllSupport

Indica se um driver dá suporte a uma lista d. Com suporte a partir do Windows 10, versão 2004 (WDDM 2.8).

MiscCaps.DisplayableSupport

Indica se um driver dá suporte ao recurso exibivel. Com suporte a partir do Windows 11 (WDDM 3.0).

MiscCaps.Reserved

Reservado.

MiscCaps.Value

Uma maneira alternativa de acessar os bits miscCaps .

MaxHwQueuedFlips

O número máximo de filas de inversão de hardware compatíveis com o driver. Se o sistema operacional permitir suporte à fila de inversão de hardware, o driver poderá definir MaxHwQueuedFlips como um valor maior que 1. Adicionado no Windows Server 2022 (WDDM 2.9); com suporte a partir de Windows 11 (WDDM 3.0).

HwQueuedFlipCaps

Um valor DXGK_HWQUEUEDFLIP_CAPS que descreve os recursos de fila de inversão de hardware. Adicionado no Windows Server 2022 (WDDM 2.9); com suporte a partir de Windows 11 (WDDM 3.0).

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista
Cabeçalho d3dkmddi.h (inclua D3dkmddi.h)

Confira também

DxgkDdiUpdateActiveVidPnPresentPath

DXGK_VIDSCHCAPS

DxgkDdiStopDeviceAndReleasePostDisplayOwnership

CheckDirectFlipSupport

DXGK_POINTERFLAGS

D3DKMDT_PREEMPTION_CAPS

DXGK_GAMMARAMPCAPS

DxgkDdiQueryAdapterInfo

DXGK_PRESENTATIONCAPS

DXGK_VIDMMCAPS

DXGK_GPUENGINETOPOLOGY

DxgkDdiQueryEngineStatus

DxgkDdiSetPowerComponentFState

DxgkDdiSetVidPnSourceAddress

DxgkDdiResetEngine

DxgkDdiPowerRuntimeControlRequest

DxgkCbNotifyInterrupt

DxgkDdiNotifySurpriseRemoval

DxgkDdiQueryDependentEngineGroup

DXGK_FLIPCAPS

DXGKARG_QUERYADAPTERINFO