Freigeben über


D3DDDI_ESCAPEFLAGS-Struktur (d3dukmdt.h)

Die D3DDDI_ESCAPEFLAGS-Struktur gibt an, wie der Benutzermodusanzeigetreiber Informationen mit dem Anzeigeminiporttreiber teilt.

Syntax

typedef struct _D3DDDI_ESCAPEFLAGS {
  union {
    struct {
      UINT HardwareAccess : 1;
      UINT DeviceStatusQuery : 1;
      UINT ChangeFrameLatency : 1;
      UINT NoAdapterSynchronization : 1;
#if ...
      UINT Reserved : 1;
      UINT VirtualMachineData : 1;
      UINT DriverKnownEscape : 1;
      UINT DriverCommonEscape : 1;
#if ...
      UINT Reserved2 : 24;
#else
      UINT Reserved2 : 26;
#endif
#elif
      UINT Reserved : 28;
#elif
      UINT Reserved : 29;
#else
      UINT Reserved : 31;
#endif
    };
    UINT Value;
  };
} D3DDDI_ESCAPEFLAGS;

Member

HardwareAccess

Ein UINT-Wert , der angibt, ob das Betriebssystem die zweite Synchronisierungsebene mit dem Anzeigeminiporttreiber für den DxgkDdiEscape-Aufruf ausführt. Wenn der Treiber die zweite Synchronisierungsebene erfordert und das HardwareAccess-Flag nicht festgelegt ist, sollte der Aufruf der DxgkDdiEscape-Funktion des Treibers fehlschlagen.

Ab Windows 8.1 müssen DeviceStatusQuery und ChangeFrameLatency auf Null festgelegt werden, wenn dieser Member festgelegt ist.

Das Festlegen dieses Elements entspricht dem Festlegen des ersten Bits des 32-Bit-Elements Wert (0x00000001).

DeviceStatusQuery

Wenn festgelegt, wenn die pfnEscapeCb-Funktion aufgerufen wird und die D3DDDICB_ESCAPE. PrivateDriverDataSize-Member ist sizeof(D3DDDI_EXECUTIONSTATEESCAPE), die Direct3D-Runtime interpretiert die D3DDDICB_ESCAPE.pPrivateDriverData-Element als Zeiger auf einen Puffer, der eine D3DDDI_EXECUTIONSTATEESCAPE-Struktur enthält. Darüber hinaus verarbeitet die Runtime pfnEscapeCb als status Abfrage, indem die angeforderten Informationen in den bereitgestellten Puffer geschrieben werden, anstatt einen DxgkDdiEscape-Aufruf an den Anzeige-Miniporttreiber zu senden.

Wenn dieser Member festgelegt ist, müssen HardwareAccess und ChangeFrameLatency auf Null festgelegt werden.

Unterstützt ab Windows 8.1.

Das Betriebssystem ignoriert diesen Member, wenn er vor Windows 8.1 ist oder wenn der Benutzermodustreiber mit einem OpenAdapterXxx-Aufruf initialisiert wurde, wobei der pOpenData-Interface-Member> Direct3D Version 8 oder früher angibt.

Das Festlegen dieses Elements entspricht dem Festlegen des zweiten Bits des 32-Bit-Wertmembers (0x00000002).

ChangeFrameLatency

Wenn festgelegt, wird die pfnEscapeCb-Funktion aufgerufen, die D3DDDICB_ESCAPE. Das PrivateDriverDataSize-Element ist sizeof(D3DDDI_FRAMELATENCYESCAPE) und die Bedingungen in Den Hinweisen sind ebenfalls erfüllt. Die Direct3D-Runtime interpretiert die D3DDDICB_ESCAPE.pPrivateDriverData-Member als Zeiger auf einen Puffer, der eine D3DDDI_FRAMELATENCYESCAPE-Struktur enthält. Darüber hinaus verarbeitet die Runtime pfnEscapeCb als Anforderung zum Ändern der maximalen Framelatenz des DirectX-Grafikkernsubsystems, indem die angeforderten Informationen in den bereitgestellten Puffer geschrieben werden, anstatt einen DxgkDdiEscape-Aufruf an den Anzeige-Miniporttreiber zu senden.

Wenn dieser Member festgelegt ist, müssen HardwareAccess und DeviceStatusQuery auf Null festgelegt werden.

Unterstützt ab Windows 8.1.

Das Betriebssystem ignoriert diesen Member, wenn er vor Windows 8.1 ist oder wenn der Benutzermodustreiber mit einem OpenAdapterXxx-Aufruf initialisiert wurde, wobei der pOpenData-Interface-Member> Direct3D Version 8 oder früher angibt.

Das Festlegen dieses Elements entspricht dem Festlegen des dritten Bits des 32-Bit-Elements Wert (0x00000004).

NoAdapterSynchronization

Reserved

Dieser Member ist reserviert und sollte auf 0 (null) festgelegt werden. Das Festlegen dieses Elements auf 0 (null) entspricht dem Festlegen der verbleibenden 29 Bits (0xFFFFFFF8) des 32-Bit-Wertmembers auf Nullen.

Dieser Member ist reserviert und sollte auf 0 (null) festgelegt werden. Das Festlegen dieses Elements auf 0 (null) entspricht dem Festlegen der verbleibenden 31 Bits (0xFFFFFFFE) des 32-Bit-Wertmembers auf Nullen.

VirtualMachineData

Gibt an, dass DxgkDdiEscape von einem virtuellen Computer aufgerufen wird.

DriverKnownEscape

Die privaten Treiberdaten weisen auf eine bekannte Struktur hin.

DriverCommonEscape

Die durch die Laufzeit definierte Struktur privater Datenpunkte.

Reserved2

Dieser Member ist reserviert und sollte auf 0 (null) festgelegt werden.

Value

Ein Element in der Union, das in D3DDDI_ESCAPEFLAGS enthalten ist, das einen 32-Bit-Wert enthalten kann, der angibt, wie Informationen freigegeben werden.

Hinweise

Wenn ChangeFrameLatency festgelegt ist, ist ein pfnEscapeCb-Aufruf nur erfolgreich, wenn:

  • Der Display-Miniporttreiber ist für eine verknüpfte Adapterkonfiguration (Linked Adapter Configuration, LDA) verantwortlich, die von einem einzelnen Anbieter bereitgestellt wird.
  • Die App hat zu einem bestimmten Zeitpunkt in ihrer Lebensdauer den exklusiven Vollbildbesitz des Displays übernommen.
  • Die App hat den standardmäßigen maximalen Framelatenzwert von 3 nicht überschrieben.
Wenn diese Bedingungen nicht erfüllt sind, gibt der pfnEscapeCb-Aufruf einen E_INVALIDARG Fehlercode zurück.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar in Windows Vista und höheren Versionen des Windows-Betriebssystems.
Kopfzeile d3dukmdt.h (einschließlich D3dumddi.h, D3dkmddi.h)

Weitere Informationen

D3DDDICB_ESCAPE

D3DDDI_EXECUTIONSTATEESCAPE

D3DDDI_FRAMELATENCYESCAPE

DXGKARG_ESCAPE

DxgkDdiEscape

pfnEscapeCb