Partager via


structure DXGK_DRIVERCAPS (d3dkmddi.h)

La structure DXGK_DRIVERCAPS décrit les fonctionnalités d’un pilote miniport d’affichage fourni par le pilote 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;
      UINT NoHybridDiscreteDListDllMuxSupport : 1;
      UINT CursorDoesNotSupportXorBlendWithMultiPlaneOverlay : 1;
#if ...
      UINT Reserved : 23;
#elif
      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

Type de données PHYSICAL_ADDRESS (défini comme LARGE_INTEGER) qui indique l’adresse physique la plus 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 directe (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

Structure DXGK_POINTERFLAGS qui identifie les fonctionnalités de pointeur de la souris, dans les indicateurs de champ binaire, 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 du gestionnaire d’interruptions correspondant à un numéro de message fixe.

[out] NumberOfSwizzlingRanges

Nombre de plages swizzling 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 permettant de décrire les fonctionnalités de transformation d’espace gamma et de couleur des pipelines d’affichage. REMARQUE : ce champ remplace 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 bit, que le pilote peut prendre en charge.

[out] MaxQueuedFlipOnVSync

Nombre de retournements pouvant être mis en file d’attente et en attente sur le matériel graphique. Chaque retournement est mis en verrou à un convertisseur numérique à analogique (DAC) à chaque interruption VSync, dans l’ordre, car le matériel graphique met en file d’attente le retournement.

[out] FlipCaps

Structure DXGK_FLIPCAPS qui identifie les fonctionnalités de découpage, dans les indicateurs de champ bit, que le pilote peut prendre en charge.

[out] SchedulingCaps

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

[out] MemoryManagementCaps

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

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. Prise 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 Windows 8 WDK, définissez ce membre sur DXGKDDI_WDDMv1_2.

Reserved

Réservé.

Reserved1

Réservé.

[out] PreemptionCaps

Structure D3DKMDT_PREEMPTION_CAPS qui décrit les fonctionnalités de préemption des requêtes graphiques GPU prises en charge par le pilote.

Prise en charge à partir de Windows 8.

[out] SupportNonVGA

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

Prise en charge à partir de Windows 8.

[out] SupportSmoothRotation

Si TRUE, le pilote prend en charge la mise à jour de la rotation du chemin sur l’adaptateur à l’aide de la fonction DxgkDdiUpdateActiveVidPnPresentPath, tout en ne nécessitant pas de nouveau VidPN à créer et définir.

Prise en charge à partir de Windows 8.

[out] SupportPerEngineTDR

Si 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 le DxgkDdiQueryDependentEngineGroup, DxgkDdiQueryEngineStatuset fonctions DxgkDdiResetEngine.

Prise en charge à partir de Windows 8.

[out] SupportDirectFlip

Si TRUE, le pilote prend en charge la création et l’ouverture d’allocations principales gérées partagées. Une valeur de 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 la mémoire vidéo à retourner à une allocation incompatible.
  • Le pilote en 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 aux ressources Direct Flip. Le DWM valide ces ressources à l’aide de la fonction CheckDirectFlipSupport en mode utilisateur.

Prise en charge à partir de Windows 8.

[out] SupportMultiPlaneOverlay

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

Prise en charge à partir de Windows 8.1.

[out] SupportRuntimePowerManagement

Si 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.

Prise en charge à partir de Windows 8.

[out] SupportSurpriseRemovalInHibernation

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

Si ce membre est défini, le pilote 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.

Prise en charge à partir de Windows 8.

[out] HybridDiscrete

Si 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.

Prise en charge à partir de Windows 8.1.

[out] MaxOverlayPlanes

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

Prise 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 la 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 retournements immédiats vers un plan de superposition multiplane tant que la seule valeur changeant 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 quand l’étirement multiplane par plan est appliqué.

HybridAcpiChainingRequired

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

[out] MaxQueuedMultiPlaneOverlayFlipVSync

Indique le nombre maximal de mises à jour d’un plan unique peut être effectué au cours d’une période Vsync unique, où la mise à jour la plus récente remplace la mise à jour précédente. Si un pilote prend en charge file d’attente de retournement 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. Prise en charge à partir de WDDM 2.4.

MiscCaps.Detachable

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

MiscCaps.VirtualGpuOnly

L’adaptateur ne doit pas être utilisé par les applications Direct3D sur l’hôte. Prise 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. Prise 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. Prise en charge à partir de Windows 10, version 2004 (WDDM 2.8).

MiscCaps.DisplayableSupport

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

MiscCaps.NoHybridDiscreteDListDllMuxSupport

MiscCaps.CursorDoesNotSupportXorBlendWithMultiPlaneOverlay

MiscCaps.Reserved

Réservé.

MiscCaps.Value

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

MaxHwQueuedFlips

Nombre maximal de files d’attente de retournement matérielles que le pilote prend en charge. Si le système d’exploitation autorise la prise en charge de la file d’attente de basculement matériel, 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 de basculement matériel. Ajouté dans Windows Server 2022 (WDDM 2.9) ; prise en charge à partir de Windows 11 (WDDM 3.0).

Exigences

Exigence Valeur
client minimum pris en charge Windows Vista
d’en-tête d3dkmddi.h (include 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