DXGKARG_COMMITVIDPN_FLAGS Struktur (d3dkmddi.h)
Die DXGKARG_COMMITVIDPN_FLAGS-Struktur identifiziert Details zu einem Aufruf der DxgkDdiCommitVidPn-Funktion .
Syntax
typedef struct _DXGKARG_COMMITVIDPN_FLAGS {
UINT PathPowerTransition : 1;
UINT PathPoweredOff : 1;
UINT Reserved : 30;
} DXGKARG_COMMITVIDPN_FLAGS;
Member
PathPowerTransition
Ein UINT-Wert, der angibt, ob das Microsoft DirectX-Grafikkernsubsystem die DxgkDdiCommitVidPn-Funktion aufruft, um einen verbundenen Monitor auszuschalten.
Wenn PathPowerTransition auf TRUE festgelegt ist, kann der Anzeige-Miniporttreiber diesen Aufruf für ein Herunterfahren optimieren (der Treiber kann z. B. vertikale Synchronisierungen deaktivieren). Der Treiber muss auch beachten, dass er möglicherweise weiterhin Aufrufe seiner DxgkDdiPresent-Funktion für die betroffene Quelle empfängt.
Das Festlegen dieses Elements entspricht dem Festlegen des ersten Bits eines 32-Bit-Werts (0x00000001).
Weitere Informationen finden Sie im folgenden Abschnitt "Hinweise".
PathPoweredOff
Ein UINT-Wert, der angibt, ob das DirectX-Grafikkernsubsystem DxgkDdiCommitVidPn aufruft, um den Treiber darüber zu informieren, dass der Benutzer den Modus geändert hat.
Wenn PathPoweredOff auf TRUE festgelegt ist, sollte der Anzeigeminiporttreiber aktuelle Vorgänge erwarten, die auf der neuen Topologie basieren. Der Treiber kann keine Vorgänge ausführen, die dazu führen würden, dass der Topologiepfad wieder eingeschaltet wird (z. B. kann der Treiber keine vertikalen Synchronisierungen aktivieren), da der Monitor jetzt ausgeschaltet werden sollte.
Wenn PathPoweredOff auf FALSE festgelegt ist, wird der Topologiepfad aktiviert. Der Anzeige-Miniporttreiber sollte Hardware für aktuelle Vorgänge programmieren, die auf dem früheren Topologiepfad basieren, und der Treiber sollte Hardware committen, um diesen Topologiepfad zu unterstützen. Das Festlegen dieses Elements entspricht dem Festlegen des zweiten Bits eines 32-Bit-Werts (0x00000002).
Weitere Informationen finden Sie im folgenden Abschnitt "Hinweise".
Reserved
Dieser Member ist reserviert und sollte auf 0 (null) festgelegt werden. Das Festlegen dieses Elements auf 0 (null) entspricht dem Festlegen der verbleibenden 30 Bits (0xFFFFFFFC) eines 32-Bit-Werts auf Nullen.
Hinweise
Die DXGKARG_COMMITVIDPN_FLAGS-Struktur speichert Informationen, die der Anzeige-Miniporttreiber verwenden kann, um zu bestimmen, wie auf angeforderte Modusänderungen reagiert werden soll. Mit diesen Informationen kann der Treiber zwischen Modusänderungen unterscheiden, die während der regulären Aktivität auftreten, da eine Anwendung eine Modusänderung angefordert hat, änderungen, die aufgrund von Energieübergängen auftreten, und Änderungen, die auftreten, wenn Monitore deaktiviert sind.
Während der regulären Aktivität, wenn die DxgkDdiCommitVidPn-Funktion aufgerufen wird, sind sowohl PathPowerTransition - als auch PathPoweredOff-MemberFALSE , sodass der Treiber Modusänderungen sofort anwenden sollte. Solche Modusänderungen werden in der Regel als isolierte Ereignisse ausgeführt. Daher muss der Treiber keinen Zustand nachverfolgen, der der vorherigen Moduskonfiguration zugeordnet ist.
Wenn Monitore ausgeschaltet oder aktiviert werden, ist PathPowerTransitionTRUE , um einen Energieübergang anzuzeigen. In diesem Fall besteht ein häufiges Muster darin, dass die Monitore ausgeschaltet werden und dann zu einem späteren Zeitpunkt die ursprüngliche Konfiguration wiederhergestellt wird. Es kann eine erhebliche Arbeitsauslastung für den Treiber sein, die Anzeigekonfiguration nach dem Herunterfahren des Systems vollständig zurückzusetzen. Darüber hinaus muss der Treiber dxgkDdiPresent-Vorgänge weiterhin ausführen, während die Monitore ausgeschaltet sind. Der Treiber kann jedoch seine Arbeitsauslastung reduzieren, wenn ein Aufruf an DxgkDdiCommitVidPn erfolgt, indem er sicherstellt, dass die beteiligten Monitore ausgeschaltet sind. Wenn die Stromversorgung wiederhergestellt wird, wird die Treiberworkload zum Wiederherstellen der Anzeigekonfiguration dadurch reduziert.
Da der Monitor möglicherweise nicht physisch verbunden ist (z. B. zur Systemaufnahmezeit), sollte sich der Treiber nicht darauf verlassen, dass Windows später die DxgkDdiSetPowerState-Funktion aufruft, um den Energiezustand des untergeordneten Geräts der Grafikkarte festzulegen. Windows fordert jedoch weiterhin an, dass der CRTC aktiviert werden soll. Wenn der Treiber die vertikale Synchronisierung nicht aktiviert, wenn dies vom Anzeigemodus-Manager (DMM) angefordert wird, und wenn der Benutzer den Monitor später erneut verbindet, ist die Monitoranzeige möglicherweise leer.
DxgkDdiPresent-Vorgänge müssen vom Treiber berücksichtigt werden, während Monitore ausgeschaltet sind. Der Treiber muss möglicherweise auf eine von einer Anwendung ausgelöste Modusänderung reagieren, um z. B. Änderungen an der Renderingpipeline durchzuführen, um Rotationsänderungen zu berücksichtigen. Die Einstellungen pathPowerTransition = FALSE und PathPoweredOff = TRUE informieren den Treiber darüber, dass eine solche Modusänderung aufgetreten ist. In diesem Fall darf der Treiber die Monitore nicht einschalten, sondern sollte stattdessen die Hardware umprogrammieren, falls dies erforderlich ist, um den Moduswechsel zu berücksichtigen, sodass zusätzliche DxgkDdiPresent-Vorgänge abgeschlossen werden können. Wenn eine solche Modusänderung durchgeführt wurde und Die Monitore später wieder aktiviert werden, ist es unwahrscheinlich, dass der Vor dem Herunterschalten aufgetretene Modus wiederhergestellt wird.
Wenn ein System resume-Vorgang ausgelöst wird, nachdem die Monitore für einen Systemangehalten wurden, kann der Treiber einen DxgkDdiCommitVidPn-Aufruf mit PathPowerTransition = FALSE und PathPoweredOff = FALSE empfangen, bevor ein DxgkDdiCommitVidPn-Aufruf mit PathPowerTransition = TRUE erfolgt. Diese Situation sollte nur bei einer leeren Topologie auftreten, und in diesem Fall sollte der Treiber monitore nicht wieder einschalten, da der Energieübergang noch nicht abgeschlossen ist.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows Vista |
Kopfzeile | d3dkmddi.h (einschließlich D3dkmddi.h) |