Partager via


structure DXGKARG_COMMITVIDPN_FLAGS (d3dkmddi.h)

La structure DXGKARG_COMMITVIDPN_FLAGS identifie les détails d’un appel à la fonction DxgkDdiCommitVidPn.

Syntaxe

typedef struct _DXGKARG_COMMITVIDPN_FLAGS {
  UINT PathPowerTransition : 1;
  UINT PathPoweredOff : 1;
  UINT Reserved : 30;
} DXGKARG_COMMITVIDPN_FLAGS;

Membres

PathPowerTransition

Valeur UINT qui spécifie si le sous-système du noyau graphique Microsoft DirectX appelle la fonction DxgkDdiCommitVidPn pour désactiver un moniteur connecté.

Si PathPowerTransition est défini sur TRUE, le pilote display miniport peut optimiser cet appel pour une mise hors tension (par exemple, le pilote peut désactiver les synchronisations verticales). Le pilote doit également être conscient qu’il peut toujours recevoir des appels à son DxgkDdiPresent fonction sur la source affectée.

Définir ce membre équivaut à définir le premier bit d’une valeur 32 bits (0x00000001).

Pour plus d’informations, consultez la section Remarques suivante.

PathPoweredOff

Valeur UINT qui spécifie si le sous-système du noyau graphique DirectX appelle DxgkDdiCommitVidPn pour informer le pilote que les modes modifiés par l’utilisateur.

Si PathPoweredOff est défini sur TRUE, le pilote de miniport d’affichage doit s’attendre à présenter des opérations basées sur la nouvelle topologie. Le pilote ne peut pas effectuer d’opérations qui entraîneraient la mise sous tension du chemin de topologie (par exemple, le pilote ne peut pas activer les synchronisations verticales), car le moniteur doit maintenant être désactivé.

Si PathPoweredOff a la valeur FALSE, le chemin de topologie est activé. Le pilote miniport d’affichage doit programmer du matériel pour les opérations présentes basées sur l’ancien chemin de topologie, et le pilote doit valider du matériel pour prendre en charge ce chemin de topologie. La définition de ce membre équivaut à définir le deuxième bit d’une valeur 32 bits (0x00000002).

Pour plus d’informations, consultez la section Remarques suivante.

Reserved

Ce membre est réservé et doit être défini sur zéro. La définition de ce membre sur zéro équivaut à définir les 30 bits restants (0xFFFFFFFC) d’une valeur 32 bits sur zéros.

Remarques

La structure DXGKARG_COMMITVIDPN_FLAGS stocke les informations que le pilote miniport d’affichage peut utiliser pour déterminer comment répondre aux modifications de mode demandées. Avec ces informations, le pilote peut distinguer les modifications de mode qui se produisent pendant l’activité régulière, car une application a demandé un changement de mode, des modifications qui se produisent en raison de transitions d’alimentation et des modifications qui se produisent pendant que les moniteurs sont désactivés.

Pendant l’activité régulière, lorsque la fonction DxgkDdiCommitVidPn est appelée, les deux PathPowerTransition et membres PathPoweredOff seront FAUX afin que le pilote puisse appliquer immédiatement les modifications du mode. Ces modifications de mode sont généralement effectuées en tant qu’événements isolés. Par conséquent, il n’est pas nécessaire que le pilote effectue le suivi d’un état associé à la configuration du mode précédent.

Si les moniteurs sont désactivés ou activés, PathPowerTransition sera TRUE pour indiquer une transition d’alimentation. Dans ce cas, un modèle courant est que les moniteurs seront désactivés, puis, ultérieurement, la configuration d’origine sera restaurée. Il peut s’agir d’une charge de travail importante pour que le pilote réinitialise complètement la configuration de l’affichage après un arrêt du système. En outre, le pilote doit continuer à effectuer opérations DxgkDdiPresent pendant que les moniteurs sont désactivés. Toutefois, le pilote peut réduire sa charge de travail lorsqu’un appel est effectué pour DxgkDdiCommitVidPn en vous assurant que les moniteurs impliqués sont éteints. Lorsque l’alimentation est restaurée, la charge de travail du pilote pour restaurer la configuration d’affichage sera ainsi réduite.

Étant donné que le moniteur peut ne pas être connecté physiquement (au moment du reprise du système, par exemple), le pilote ne doit pas compter sur Windows pour effectuer un appel ultérieur à la fonction DxgkDdiSetPowerState pour définir l’état d’alimentation de l’appareil enfant de l’adaptateur d’affichage. Toutefois, Windows demande toujours que le CRTC soit activé. Si le pilote n’active pas la synchronisation verticale lorsqu’il est demandé de le faire par le gestionnaire de mode d’affichage (DMM) et si l’utilisateur reconnecte ultérieurement le moniteur, l’affichage du moniteur peut être vide.

opérations de DxgkDdiPresent doivent toujours être respectées par le pilote pendant que les moniteurs sont désactivés. Le pilote peut avoir à agir sur une modification de mode déclenchée par une application, par exemple pour effectuer des modifications dans le pipeline de rendu afin de tenir compte des modifications de rotation. Les paramètres de PathPowerTransition = FALSE et PathPoweredOff = TRUE informent le pilote qu’une telle modification de mode s’est produite. Dans ce cas, le pilote ne doit pas activer les moniteurs, mais au lieu de cela, il doit réprogramquer le matériel, s’il est nécessaire, pour prendre en charge le changement de mode afin que d’autres DxgkDdiPresent opérations puissent être effectuées. Lorsqu’une telle modification de mode a été effectuée et que les moniteurs sont ultérieurement restaurés, il est peu probable que le mode qui s’est produit avant la restauration de la mise hors tension.

Si une opération de reprise du système est déclenchée après que les moniteurs ont été désactivés pour une opération de suspension du système, le pilote peut recevoir un appel DxgkDdiCommitVidPn avec 'appel PathPowerTransition = FALSE et PathPoweredOff = FALSE avant un appel DxgkDdiCommitVidPn est effectué avec PathPowerTransition = TRUE. Cette situation ne doit se produire qu’avec une topologie vide et, dans ce cas, le pilote ne doit pas réactiver les moniteurs, car la transition de l’alimentation n’est pas encore terminée.

Exigences

Exigence Valeur
client minimum pris en charge Windows Vista
d’en-tête d3dkmddi.h (include D3dkmddi.h)

Voir aussi

DXGKARG_COMMITVIDPN

DxgkDdiPresent

DxgkDdiSetPowerState