Freigeben über


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;

Angehörige

PathPowerTransition

Ein UINT-Wert, der angibt, ob das Microsoft DirectX-Grafik-Kernelsubsystem die DxgkDdiCommitVidPn--Funktion aufruft, um einen angeschlossenen Monitor auszuschalten.

Wenn PathPowerTransition- auf TRUE-festgelegt ist, kann der Miniporttreiber dieses Aufrufen für einen Stromsparmodus optimieren (z. B. kann der Treiber vertikale Synchronisierungen deaktivieren). Der Treiber muss auch beachten, dass er möglicherweise weiterhin Aufrufe an seine 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-Grafik-Kernelsubsystem DxgkDdiCommitVidPn- aufruft, um den Treiber darüber zu informieren, dass der Benutzer modi geändert hat.

Wenn PathPoweredOff- auf TRUE-festgelegt ist, sollte der Miniporttreiber die vorhandenen 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 erneut 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 eingeschaltet. Der Display-Miniporttreiber sollte Hardware für vorhandene Vorgänge programmieren, die auf dem ehemaligen Topologiepfad basieren, und der Treiber sollte Hardware zur Unterstützung dieses Topologiepfads übernehmen. Das Festlegen dieses Elements entspricht dem Festlegen des zweiten Bits eines 32-Bit-Werts (0x00000002).

Weitere Informationen finden Sie im folgenden Abschnitt "Hinweise".

Reserved

Dieses Element ist reserviert und sollte auf Null festgelegt werden. Das Festlegen dieses Elements auf Null entspricht dem Festlegen der verbleibenden 30 Bits (0xFFFFFFFC) eines 32-Bit-Werts auf Nullen.

Bemerkungen

Die DXGKARG_COMMITVIDPN_FLAGS Struktur speichert Informationen, die der Anzeigeminiporttreiber verwenden kann, um zu bestimmen, wie auf angeforderte Modusänderungen reagiert werden kann. Mit diesen Informationen kann der Treiber zwischen Modusänderungen unterscheiden, die während der normalen Aktivität auftreten, da eine Anwendung eine Änderung des Modus angefordert hat, Änderungen, die aufgrund von Stromübergängen auftreten, und Änderungen, die auftreten, während Monitore deaktiviert sind.

Wenn die DxgkDdiCommitVidPn--Funktion aufgerufen wird, werden sowohl PathPowerTransition als auch PathPoweredOff Member FALSE, sodass sich der Treiber sofort ändert. Solche Modusänderungen werden in der Regel als isolierte Ereignisse ausgeführt. Daher ist es nicht erforderlich, dass der Treiber einen Zustand nachverfolgen kann, der der vorherigen Moduskonfiguration zugeordnet ist.

Wenn Monitore deaktiviert oder aktiviert werden, wird PathPowerTransition-TRUE-, um einen Stromübergang anzugeben. In diesem Fall ist ein gängiges Muster, dass die Monitore deaktiviert werden und dann zu einem späteren Zeitpunkt die ursprüngliche Konfiguration wiederhergestellt wird. Es kann eine erhebliche Arbeitsauslastung für den Treiber sein, um die Anzeigekonfiguration vollständig nach dem Herunterfahren des Systems zurückzusetzen. Darüber hinaus muss der Treiber weiterhin DxgkDdiPresent Vorgänge ausführen, während die Monitore ausgeschaltet sind. Der Treiber kann seine Arbeitsauslastung jedoch verringern, wenn ein Anruf an DxgkDdiCommitVidPn erfolgt, indem sichergestellt wird, dass die beteiligten Monitore ausgeschaltet sind. Wenn der Strom wiederhergestellt wird, wird die Arbeitsauslastung des Treibers zum Wiederherstellen der Anzeigekonfiguration dadurch reduziert.

Da der Monitor möglicherweise nicht physisch verbunden ist (z. B. zur Systemaufnahmezeit), sollte der Treiber nicht auf Windows angewiesen sein, um einen späteren Aufruf an die DxgkDdiSetPowerState-Funktion durchzuführen, um den Energiezustand des untergeordneten Geräts des Anzeigeadapters festzulegen. Windows fordert jedoch weiterhin an, dass die CRTC aktiviert ist. Wenn der Treiber die vertikale Synchronisierung nicht aktiviert, wenn er vom Anzeigemodus-Manager (DMM) angefordert wird und der Benutzer den Monitor später erneut verbindet, ist die Bildschirmanzeige möglicherweise leer.

DxgkDdiPresent--Vorgänge müssen vom Treiber weiterhin berücksichtigt werden, während Monitore ausgeschaltet sind. Der Treiber muss möglicherweise auf eine von einer Anwendung ausgelöste Modusänderung reagieren, z. B. um Änderungen an der Renderingpipeline durchzuführen, um Drehungsänderungen zu berücksichtigen. Einstellungen von PathPowerTransition = FALSE und PathPoweredOff = TRUE den Treiber darüber informieren, dass eine solche Modusänderung aufgetreten ist. In diesem Fall darf der Treiber die Monitore nicht aktivieren, sondern sollte die Hardware ggf. neu programmieren, damit zusätzliche DxgkDdiPresent- Vorgänge abgeschlossen werden können. Wenn eine solche Modusänderung ausgeführt wurde und Monitore später wieder aktiviert sind, ist es unwahrscheinlich, dass der Modus, der vor dem Einschalten aufgetreten ist, wiederhergestellt wird.

Wenn ein System-Fortsetzungsvorgang ausgelöst wird, nachdem Monitore für einen System suspend-Vorgang deaktiviert wurden, der Treiber kann einen DxgkDdiCommitVidPn Anruf sowohl mit PathPowerTransition = FALSE und PathPoweredOff = FALSE empfangen, bevor ein DxgkDdiCommitVidPn Aufruf mit PathPowerTransition = TRUEerfolgt. Diese Situation sollte nur mit einer leeren Topologie auftreten, und in diesem Fall sollte der Treiber keine Monitore wieder einschalten, da der Energieübergang noch nicht abgeschlossen ist.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows Vista
Header- d3dkmddi.h (einschließlich D3dkmddi.h)

Siehe auch

DXGKARG_COMMITVIDPN

DxgkDdiPresent-

DxgkDdiSetPowerState-