Partager via


DXGKARG_COMMITVIDPN_FLAGS structure (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 mettre hors tension un moniteur connecté.

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

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

Pour plus d'informations, consultez la section Notes qui suit.

PathPoweredOff

Valeur UINT qui spécifie si le sous-système du noyau graphique DirectX appelle DxgkDdiCommitVidPn pour informer le pilote que l’utilisateur a changé de mode.

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

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

Pour plus d'informations, consultez la section Notes qui suit.

Reserved

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

Remarques

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

Lors d’une activité régulière, lorsque la fonction DxgkDdiCommitVidPn est appelée, les membres PathPowerTransition et PathPoweredOff ont la valeur FALSE afin que le pilote applique immédiatement les modifications de 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 a la valeur TRUE pour indiquer une transition d’alimentation. Dans ce cas, un modèle courant est que les moniteurs sont désactivés, puis, ultérieurement, la configuration d’origine est restaurée. Il peut s’agir d’une charge de travail importante pour le pilote de réinitialiser complètement la configuration de l’affichage après un arrêt du système. En outre, , le pilote doit continuer à effectuer les 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é à DxgkDdiCommitVidPn en s’assurant que les moniteurs impliqués sont hors tension. Lorsque l’alimentation est restaurée, la charge de travail du pilote pour restaurer la configuration d’affichage est ainsi réduite.

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

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

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 PathPowerTransition = FALSE et PathPoweredOff = FALSE avant qu’un appel DxgkDdiCommitVidPn soit 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.

Configuration requise

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

Voir aussi

DXGKARG_COMMITVIDPN

DxgkDdiPresent

DxgkDdiSetPowerState