estructura DXGK_DRIVERCAPS (d3dkmddi.h)

La estructura DXGK_DRIVERCAPS describe las funciones de un controlador de minipuerto de pantalla que proporciona el controlador a través de una llamada a su función DxgkDdiQueryAdapterInfo .

Sintaxis

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;

Miembros

[out] HighestAcceptableAddress

Un tipo de datos PHYSICAL_ADDRESS (que se define como LARGE_INTEGER) que indica la dirección física más alta aceptable de memoria del sistema (RAM) que se va a usar.

[out] MaxAllocationListSlotId

Número máximo de identificadores de ranura de lista de asignación. Una ranura de lista de asignación representa dónde se dirige una asignación en el almacenamiento en búfer de acceso directo a memoria (DMA).

[out] ApertureSegmentCommitLimit

Número máximo de bytes de memoria física que admite el controlador de minipuerto de pantalla para la asignación en un segmento de apertura. El administrador de memoria de vídeo no asignará más memoria física a un segmento de apertura que el límite especificado por ApertureSegmentCommitLimit .

[out] MaxPointerWidth

Ancho máximo del puntero del mouse, en píxeles.

[out] MaxPointerHeight

Alto máximo del puntero del mouse, en líneas de examen.

[out] PointerCaps

Estructura DXGK_POINTERFLAGS que identifica las funcionalidades del puntero del mouse, en marcas de campo de bits, que el controlador puede admitir.

[out] InterruptMessageNumber

Número de mensaje que se usa si se usan interrupciones señaladas por mensaje y el controlador llama a la función DxgkCbNotifyInterrupt desde el controlador de interrupción correspondiente a un número de mensaje fijo.

[out] NumberOfSwizzlingRanges

El número de intervalos de desenlazamiento que el controlador puede admitir.

[out] MaxOverlays

Número máximo de superposiciones que el controlador puede admitir.

[out] GammaRampCaps

Estructura DXGK_GAMMARAMPCAPS que identifica las capacidades de rampa gamma, en marcas de campo de bits, que el controlador puede admitir.

[out] ColorTransformCaps

Marcas para describir las capacidades de transformación de espacio de color y gamma de las canalizaciones de visualización. NOTA: Este campo reemplaza a gammaRampCaps en la versión anterior de WDDM 2.2 de esta estructura.

[out] PresentationCaps

Estructura DXGK_PRESENTATIONCAPS que identifica las funcionalidades de presentación, en marcas de campo de bits, que el controlador puede admitir.

[out] MaxQueuedFlipOnVSync

Número de volteos que se pueden poner en cola y pendientes en el hardware gráfico. Cada volteo se pasa a un convertidor digital a analógico (DAC) en cada interrupción de VSync, en orden, ya que el hardware gráfico pone en cola el volteo.

[out] FlipCaps

Estructura DXGK_FLIPCAPS que identifica las funcionalidades de volteo, en marcas de campo de bits, que el controlador puede admitir.

[out] SchedulingCaps

Estructura DXGK_VIDSCHCAPS que identifica las funcionalidades de programación de la unidad de procesamiento gráfico (GPU), en marcas de campo de bits, que el controlador puede admitir.

[out] MemoryManagementCaps

Estructura DXGK_VIDMMCAPS que identifica las funcionalidades de administración de memoria de vídeo que el controlador puede admitir.

[out] GpuEngineTopology

Estructura DXGK_GPUENGINETOPOLOGY que describe la topología del motor de GPU que el controlador puede admitir.

[out] WDDMVersion

Valor de DXGK_WDDMVERSION que identifica la versión de WDDM. Se admite a partir de Windows 7.

Si un controlador admite características de Windows 7 o posteriores (DXGKDDI_INTERFACE_VERSION ≥ DXGKDDI_INTERFACE_VERSION_WIN7), este miembro está reservado y debe establecerse en cero.

Para controladores anteriores que no admiten características de Windows 7 o posteriores (DXGKDDI_INTERFACE_VERSION DXGKDDI_INTERFACE_VERSION_WIN7 < ):

  • Para compilar el controlador con el WDK de Windows 7 (versión 7600), establezca este miembro en DXGKDDI_WDDMv1.
  • Para compilar el controlador con el WDK de Windows 8, establezca este miembro en DXGKDDI_WDDMv1_2.

Reserved

Reservado.

Reserved1

Reservado.

[out] PreemptionCaps

Estructura D3DKMDT_PREEMPTION_CAPS que describe las funcionalidades para el adelantamiento de las solicitudes de gráficos de GPU que admite el controlador.

Se admite a partir de Windows 8.

[out] SupportNonVGA

Si es TRUE, el controlador admite el restablecimiento del dispositivo de pantalla y la liberación de la propiedad del dispositivo de prueba automática (POST) actual mediante la función DxgkDdiStopDeviceAndReleasePostDisplayOwnership .

Se admite a partir de Windows 8.

[out] SupportSmoothRotation

Si es TRUE, el controlador admite la actualización de la rotación de rutas de acceso en el adaptador mediante la función DxgkDdiUpdateActiveVidPnPresentPath , aunque no requiere que se cree y establezca un nuevo VidPN.

Se admite a partir de Windows 8.

[out] SupportPerEngineTDR

Si es TRUE, el controlador admite el restablecimiento de motores de GPU individuales.

Si se establece este miembro, el controlador de minipuerto de pantalla debe implementar las funciones DxgkDdiQueryDependentEngineGroup, DxgkDdiQueryEngineStatus y DxgkDdiResetEngine .

Se admite a partir de Windows 8.

[out] SupportDirectFlip

Si es TRUE, el controlador admite la creación y apertura de asignaciones principales administradas compartidas. Un valor de TRUE también indica lo siguiente:

  • El controlador de minipuerto de pantalla garantiza que cuando se llama a la función DxgkDdiSetVidPnSourceAddress , el controlador no permite que la memoria de vídeo se volte a una asignación incompatible.
  • El controlador en modo de usuario valida los recursos De volteo directo antes de que el Administrador de Windows de escritorio (DWM) los use.

Solo DWM puede voltear la memoria de vídeo a los recursos De volteo directo. DwM valida estos recursos mediante la función CheckDirectFlipSupport en modo de usuario.

Se admite a partir de Windows 8.

[out] SupportMultiPlaneOverlay

Si es TRUE, el controlador de minipuerto de pantalla admite superposiciones multiplano y el controlador también debe establecer un valor para el miembro MaxOverlayPlanes . Si es FALSE, el subsistema del kernel de gráficos de DirectX no llamará a funciones de superposición de varios planos.

Se admite a partir de Windows 8.1.

[out] SupportRuntimePowerManagement

Si es TRUE, el controlador de minipuerto de pantalla admite la administración de energía en tiempo de ejecución.

Si se establece este miembro, el controlador de minipuerto de pantalla debe implementar las funciones DxgkDdiSetPowerComponentFState y DxgkDdiPowerRuntimeControlRequest .

Se admite a partir de Windows 8.

[out] SupportSurpriseRemovalInHibernation

Si es TRUE, el controlador de minipuerto de pantalla admite la limpieza de recursos de software después de que un dispositivo de pantalla externo en modo de hibernación se desconecte del sistema.

Si se establece este miembro, el controlador de minipuerto de pantalla debe implementar la función DxgkDdiNotifySurpriseRemoval con el parámetro RemovalType establecido en DxgkRemovalHibernation.

Para obtener más información, consulte Uso de recursos entre adaptadores en un sistema híbrido.

Se admite a partir de Windows 8.

[out] HybridDiscrete

Si es TRUE, el controlador de minipuerto de pantalla es una GPU discreta en un sistema híbrido.

Si se establece este miembro, el controlador de minipuerto de pantalla debe:

  • compatibilidad con WDDM 1.3
  • compatibilidad con recursos entre adaptadores
  • no tienen salidas de presentación

Para obtener más información, consulte Uso de recursos entre adaptadores en un sistema híbrido.

Se admite a partir de Windows 8.1.

[out] MaxOverlayPlanes

Si SupportRuntimePowerManagement es TRUE, el controlador de minipuerto de pantalla debe establecer MaxOverlayPlanes en el número máximo de planos de superposición que se pueden mostrar simultáneamente en una sola salida, incluida la superficie principal, que puede admitir. Si el número de planos disponibles cambiará cuando cambie el modo de funcionamiento, el controlador debe usar un número que refleje el mejor escenario.

Se admite a partir de Windows 8.1.

HybridIntegrated

Indica si la GPU actual es híbrida.

InternalGpuVirtualAddressRangeStart

Inicio interno del intervalo de direcciones virtuales de GPU.

InternalGpuVirtualAddressRangeEnd

Extremo interno del intervalo de direcciones virtuales de GPU.

SupportSurpriseRemoval

Si es TRUE, el controlador de minipuerto de pantalla admite la eliminación sorpresa.

[out] SupportMultiPlaneOverlayImmediateFlip

Si es TRUE, el controlador de minipuerto de pantalla admite volteos inmediatos a un plano de superposición multiplano siempre que el único valor que cambie es la dirección física que se va a mostrar.

[out] CursorScaledWithMultiPlaneOverlayPlane0

Si es TRUE, el hardware de pantalla siempre aplicará el mismo factor de escalado al cursor de hardware que se aplica al plano 0 cuando se aplica el ajuste de superposición multiplano por plano.

HybridAcpiChainingRequired

Indica que este controlador discreto híbrido requiere el encadenamiento de eventos ACPI desencadenados en el adaptador integrado.

[out] MaxQueuedMultiPlaneOverlayFlipVSync

Indica el número máximo de actualizaciones de un solo plano dentro de un único período de sincronización virtual, donde la actualización más reciente invalida la actualización anterior. Si un controlador admite cola de volteo de hardware, el sistema operativo omite este valor.

MiscCaps

Varias funcionalidades.

MiscCaps.SupportContextlessPresent

Admite el contexto null en las llamadas DDI. Cuando se establece este valor, el sistema operativo pasará el contexto NULL en los DDIs relacionados presentes. Se admite a partir de WDDM 2.4.

MiscCaps.Detachable

Desasociable, es decir, conectable caliente. Los controladores establecerán este bit durante la inicialización del adaptador si el adaptador es conectable en caliente. Se admite a partir de WDDM 2.4.

MiscCaps.VirtualGpuOnly

Las aplicaciones de Direct3D no deben usar el adaptador en el host. Se admite a partir de WDDM 2.5.

MiscCaps.ComputeOnly

Admite dispositivos Compute-Only mediante la representación de las funcionalidades de dispositivo de solo representación de WDDM. Se admite a partir de Windows 10, versión 1901 (WDDM 2.6)

MiscCaps.IndependentVidPnVSyncControl

Los controladores que establecen esta funcionalidad deben leer el VidPnSourceId especificado en DdiControlInterrupt3 y controlar VSync en el vidPnSourceId mencionado. Se admite a partir de Windows 10, versión 2004 (WDDM 2.7).

MiscCaps.NoHybridDiscreteDListDllSupport

Indica si un controlador admite una lista d. Se admite a partir de Windows 10, versión 2004 (WDDM 2.8).

MiscCaps.DisplayableSupport

Indica si un controlador admite la característica que se puede mostrar. Se admite a partir de Windows 11 (WDDM 3.0).

MiscCaps.Reserved

Reservado.

MiscCaps.Value

Una manera alternativa de acceder a los bits MiscCaps .

MaxHwQueuedFlips

Número máximo de colas de volteo de hardware que admite el controlador. Si el sistema operativo permite la compatibilidad con colas invertidas de hardware, el controlador puede establecer MaxHwQueuedFlips en un valor mayor que 1. Agregado en Windows Server 2022 (WDDM 2.9); se admite a partir de Windows 11 (WDDM 3.0).

HwQueuedFlipCaps

Valor de DXGK_HWQUEUEDFLIP_CAPS que describe las funcionalidades de la cola de volteo de hardware. Agregado en Windows Server 2022 (WDDM 2.9); se admite a partir de Windows 11 (WDDM 3.0).

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista
Encabezado d3dkmddi.h (incluya D3dkmddi.h)

Consulte también

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