structure DXGK_DRIVERCAPS (d3dkmddi.h)

La structure DXGK_DRIVERCAPS décrit les fonctionnalités d’un pilote miniport d’affichage que le pilote fournit via un appel à sa fonction DxgkDdiQueryAdapterInfo .

Syntaxe

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;

Membres

[out] HighestAcceptableAddress

Un PHYSICAL_ADDRESS type de données (défini comme LARGE_INTEGER) qui indique l’adresse physique la plus élevée acceptable de la mémoire système (RAM) à utiliser.

[out] MaxAllocationListSlotId

Nombre maximal d’identificateurs d’emplacement de liste d’allocation. Un emplacement de liste d’allocation représente l’emplacement où une allocation est dirigée dans la mise en mémoire tampon d’accès direct à la mémoire (DMA).

[out] ApertureSegmentCommitLimit

Nombre maximal d’octets de mémoire physique pris en charge par le pilote miniport d’affichage pour le mappage dans un segment d’ouverture. Le gestionnaire de mémoire vidéo ne mappe pas plus de mémoire physique dans un segment d’ouverture que la limite spécifiée par ApertureSegmentCommitLimit .

[out] MaxPointerWidth

Largeur maximale du pointeur de la souris, en pixels.

[out] MaxPointerHeight

Hauteur maximale du pointeur de la souris, en lignes d’analyse.

[out] PointerCaps

Une structure DXGK_POINTERFLAGS qui identifie les fonctionnalités de pointeur de souris, dans les indicateurs de champ de bits, que le pilote peut prendre en charge.

[out] InterruptMessageNumber

Numéro de message utilisé si des interruptions signalées par un message sont utilisées et que le pilote appelle la fonction DxgkCbNotifyInterrupt à partir du gestionnaire d’interruptions correspondant à un numéro de message fixe.

[out] NumberOfSwizzlingRanges

Nombre de plages de basculement que le pilote peut prendre en charge.

[out] MaxOverlays

Nombre maximal de superpositions que le pilote peut prendre en charge.

[out] GammaRampCaps

Structure DXGK_GAMMARAMPCAPS qui identifie les fonctionnalités de la rampe gamma, dans les indicateurs de champ binaire, que le pilote peut prendre en charge.

[out] ColorTransformCaps

Indicateurs pour décrire les fonctionnalités de transformation gamma et d’espace de couleur des pipelines d’affichage. REMARQUE : ce champ remplace les GammaRampCaps dans la version antérieure à WDDM 2.2 de cette structure.

[out] PresentationCaps

Structure DXGK_PRESENTATIONCAPS qui identifie les fonctionnalités de présentation, dans les indicateurs de champ binaire, que le pilote peut prendre en charge.

[out] MaxQueuedFlipOnVSync

Nombre de retournements pouvant être mis en file d’attente et en attente au niveau du matériel graphique. Chaque basculement est verrouillé vers un convertisseur numérique-analogique (DAC) à chaque interruption VSync, dans l’ordre, car le matériel graphique met en file d’attente le basculement.

[out] FlipCaps

Une structure DXGK_FLIPCAPS qui identifie les fonctionnalités de basculement, dans les indicateurs de champ de bits, que le pilote peut prendre en charge.

[out] SchedulingCaps

Une structure DXGK_VIDSCHCAPS qui identifie les fonctionnalités de planification de l’unité de traitement graphique (GPU), dans les indicateurs de champ de bits, que le pilote peut prendre en charge.

[out] MemoryManagementCaps

Une structure DXGK_VIDMMCAPS qui identifie les fonctionnalités de gestion de la mémoire vidéo que le pilote peut prendre en charge.

[out] GpuEngineTopology

Une structure DXGK_GPUENGINETOPOLOGY qui décrit la topologie du moteur GPU que le pilote peut prendre en charge.

[out] WDDMVersion

Valeur DXGK_WDDMVERSION qui identifie la version de WDDM. Pris en charge à partir de Windows 7.

Si un pilote prend en charge les fonctionnalités windows 7 ou ultérieures (DXGKDDI_INTERFACE_VERSION ≥ DXGKDDI_INTERFACE_VERSION_WIN7), ce membre est réservé et doit être défini sur zéro.

Pour les pilotes plus anciens qui ne prennent pas en charge les fonctionnalités windows 7 ou ultérieures (DXGKDDI_INTERFACE_VERSION < DXGKDDI_INTERFACE_VERSION_WIN7) :

  • Pour compiler le pilote avec windows 7 WDK (version 7600), définissez ce membre sur DXGKDDI_WDDMv1.
  • Pour compiler le pilote avec l’Windows 8 WDK, définissez ce membre sur DXGKDDI_WDDMv1_2.

Reserved

Réservé.

Reserved1

Réservé.

[out] PreemptionCaps

Une structure D3DKMDT_PREEMPTION_CAPS qui décrit les fonctionnalités de préemption des demandes graphiques GPU prises en charge par le pilote.

Pris en charge à partir de Windows 8.

[out] SupportNonVGA

Si la valeur est TRUE, le pilote prend en charge la réinitialisation du périphérique d’affichage et la libération de la propriété du périphérique d’auto-test d’alimentation (POST) actuel à l’aide de la fonction DxgkDdiStopDeviceAndReleasePostDisplayOwnership .

Pris en charge à partir de Windows 8.

[out] SupportSmoothRotation

Si la valeur est TRUE, le pilote prend en charge la mise à jour de la rotation du chemin d’accès sur l’adaptateur à l’aide de la fonction DxgkDdiUpdateActiveVidPnPresentPath , sans nécessiter la création et la définition d’un nouveau VidPN.

Pris en charge à partir de Windows 8.

[out] SupportPerEngineTDR

Si la valeur EST TRUE, le pilote prend en charge la réinitialisation des moteurs GPU individuels.

Si ce membre est défini, le pilote miniport d’affichage doit implémenter les fonctions DxgkDdiQueryDependentEngineGroup, DxgkDdiQueryEngineStatus et DxgkDdiResetEngine .

Pris en charge à partir de Windows 8.

[out] SupportDirectFlip

Si la valeur est TRUE, le pilote prend en charge la création et l’ouverture d’allocations principales managées partagées. La valeur TRUE indique également ce qui suit :

  • Le pilote miniport d’affichage garantit que lorsque la fonction DxgkDdiSetVidPnSourceAddress est appelée, le pilote n’autorise pas le basculement de la mémoire vidéo vers une allocation incompatible.
  • Le pilote de mode utilisateur valide les ressources Direct Flip avant que le Gestionnaire Windows de bureau (DWM) ne les utilise.

Seul le DWM peut retourner la mémoire vidéo sur les ressources Direct Flip. Le DWM valide ces ressources à l’aide de la fonction CheckDirectFlipSupport en mode utilisateur.

Pris en charge à partir de Windows 8.

[out] SupportMultiPlaneOverlay

Si la valeur est TRUE, le pilote miniport d’affichage prend en charge les superpositions multiplan, et le pilote doit également définir une valeur pour le membre MaxOverlayPlanes . Si la valeur est FALSE, le sous-système du noyau graphique DirectX n’appelle pas les fonctions de superposition multiplane.

Pris en charge à partir de Windows 8.1.

[out] SupportRuntimePowerManagement

Si la valeur est TRUE, le pilote miniport d’affichage prend en charge la gestion de l’alimentation au moment de l’exécution.

Si ce membre est défini, le pilote miniport d’affichage doit implémenter les fonctions DxgkDdiSetPowerComponentFState et DxgkDdiPowerRuntimeControlRequest .

Pris en charge à partir de Windows 8.

[out] SupportSurpriseRemovalInHibernation

Si la valeur est TRUE, le pilote de miniport d’affichage prend en charge le nettoyage des ressources logicielles une fois qu’un périphérique d’affichage externe en mode de mise en veille prolongée est déconnecté du système.

Si ce membre est défini, le pilote de miniport d’affichage doit implémenter la fonction DxgkDdiNotifySurpriseRemoval avec le paramètre RemovalType défini sur DxgkRemovalHibernation.

Pour plus d’informations, consultez Utilisation de ressources inter-adaptateurs dans un système hybride.

Pris en charge à partir de Windows 8.

[out] HybridDiscrete

Si la valeur est TRUE, le pilote miniport d’affichage est un GPU discret dans un système hybride.

Si ce membre est défini, le pilote miniport d’affichage doit :

  • prise en charge de WDDM 1.3
  • prendre en charge les ressources inter-adaptateurs
  • n’ont pas de sorties d’affichage

Pour plus d’informations, consultez Utilisation de ressources inter-adaptateurs dans un système hybride.

Pris en charge à partir de Windows 8.1.

[out] MaxOverlayPlanes

Si SupportRuntimePowerManagement a la valeur TRUE, le pilote miniport d’affichage doit définir MaxOverlayPlanes sur le nombre maximal de plans de superposition pouvant être affichés simultanément sur une seule sortie, y compris la surface primaire, qu’il peut prendre en charge. Si le nombre de plans disponibles change lorsque le mode de fonctionnement change, le pilote doit utiliser un nombre qui reflète le scénario le plus adapté.

Pris en charge à partir de Windows 8.1.

HybridIntegrated

Indique si le GPU actuel est hybride.

InternalGpuVirtualAddressRangeStart

Démarrage de la plage d’adresses virtuelles GPU interne.

InternalGpuVirtualAddressRangeEnd

Fin de plage d’adresses virtuelles GPU interne.

SupportSurpriseRemoval

Si la valeur EST TRUE, le pilote miniport d’affichage prend en charge la suppression surprise.

[out] SupportMultiPlaneOverlayImmediateFlip

Si la valeur est TRUE, le pilote miniport d’affichage prend en charge les basculements immédiats vers un plan de superposition multiplan tant que la seule valeur qui change est l’adresse physique à afficher.

[out] CursorScaledWithMultiPlaneOverlayPlane0

Si la valeur est TRUE, le matériel d’affichage applique toujours le même facteur de mise à l’échelle au curseur matériel que celui appliqué au plan 0 lorsque l’étirement de superposition multiplan par plan est appliqué.

HybridAcpiChainingRequired

Indique que ce pilote discret hybride nécessite le chaînage des événements ACPI déclenchés sur l’adaptateur intégré.

[out] MaxQueuedMultiPlaneOverlayFlipVSync

Indique que le nombre maximal de mises à jour d’un seul plan peut être effectué au cours d’une seule période Vsync, où la mise à jour la plus récente remplace la mise à jour précédente. Si un pilote prend en charge la file d’attente de basculement matériel, le système d’exploitation ignore cette valeur.

MiscCaps

Fonctionnalités diverses.

MiscCaps.SupportContextlessPresent

Prend en charge le contexte null dans les appels DDI. Lorsque cette valeur est définie, le système d’exploitation transmet le contexte NULL dans les DDIs associés présents. Pris en charge à partir de WDDM 2.4.

MiscCaps.Detachable

Détachable, c’est-à-dire enfichable à chaud. Les pilotes définissent ce bit lors de l’initialisation de l’adaptateur si l’adaptateur est enfichable à chaud. Pris en charge à partir de WDDM 2.4.

MiscCaps.VirtualGpuOnly

L’adaptateur ne doit pas être utilisé par les applications Direct3D sur l’hôte. Pris en charge à partir de WDDM 2.5.

MiscCaps.ComputeOnly

Prend en charge les appareils Compute-Only en rendant les fonctionnalités d’appareil de rendu uniquement de WDDM. Pris en charge à partir de Windows 10, version 1901 (WDDM 2.6)

MiscCaps.IndependentVidPnVSyncControl

Les pilotes qui définissent cette fonctionnalité doivent lire le VidPnSourceId spécifié dans DdiControlInterrupt3 et contrôler VSync sur le VidPnSourceId mentionné. Prise en charge à partir de Windows 10, version 2004 (WDDM 2.7).

MiscCaps.NoHybridDiscreteDListDllSupport

Indique si un pilote prend en charge une liste d. Pris en charge à partir de Windows 10, version 2004 (WDDM 2.8).

MiscCaps.DisplayableSupport

Indique si un pilote prend en charge la fonctionnalité d’affichage. Prise en charge à partir de Windows 11 (WDDM 3.0).

MiscCaps.Reserved

Réservé.

MiscCaps.Value

Une autre façon d’accéder aux bits MiscCaps .

MaxHwQueuedFlips

Nombre maximal de files d’attente de basculement matérielles que le pilote prend en charge. Si le système d’exploitation autorise la prise en charge de la file d’attente inversée matérielle, le pilote peut définir MaxHwQueuedFlips sur une valeur supérieure à 1. Ajouté dans Windows Server 2022 (WDDM 2.9) ; prise en charge à partir de Windows 11 (WDDM 3.0).

HwQueuedFlipCaps

Valeur DXGK_HWQUEUEDFLIP_CAPS qui décrit les fonctionnalités de file d’attente inversée du matériel. Ajouté dans Windows Server 2022 (WDDM 2.9) ; prise en charge à partir de Windows 11 (WDDM 3.0).

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista
En-tête d3dkmddi.h (inclure D3dkmddi.h)

Voir aussi

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