D3DDDI_ESCAPEFLAGS Struktur (d3dukmdt.h)
Die D3DDDI_ESCAPEFLAGS Struktur identifiziert, wie der Benutzermodusanzeigetreiber (UMD) (oder Clienttreiber) Informationen mit dem Kernelmodus-Miniporttreiber (KMD) 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;
Angehörige
HardwareAccess
Ein UINT-Wert, der angibt, ob das Betriebssystem die zweite Synchronisierungsebene in die KMD 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 muss DeviceStatusQuery und ChangeFrameLatency- auf Null festgelegt werden.
DeviceStatusQuery
Wenn festgelegt, wenn die pfnEscapeCb Funktion aufgerufen wird und die D3DDDICB_ESCAPE.PrivateDriverDataSize Member sizeof(D3DDDI_EXECUTIONSTATEESCAPE)
ist, interpretiert die Direct3D-Laufzeit die D3DDDICB_ESCAPE.pPrivateDriverData Member als Zeiger auf einen Puffer, der eine D3DDDI_EXECUTIONSTATEESCAPE Struktur enthält. Darüber hinaus verarbeitet die Laufzeit das pfnEscapeCb als Statusabfrage, indem die angeforderten Informationen in den bereitgestellten Puffer geschrieben werden, anstatt einen DxgkDdiEscape- Aufruf an den KMD zu senden.
Wenn dieses Element festgelegt ist, müssen HardwareAccess- und ChangeFrameLatency- auf Null festgelegt werden.
Wird ab Windows 8.1 unterstützt.
Das Betriebssystem ignoriert dieses Element, wenn es vor Windows 8.1 liegt oder der Benutzermodustreiber mit einem OpenAdapterXxx-Aufruf initialisiert wurde, in dem der pOpenData-->Interface Member direct3D Version 8 oder früher angibt.
ChangeFrameLatency
Wenn festgelegt, wenn die pfnEscapeCb--Funktion aufgerufen wird, wird die D3DDDICB_ESCAPE.PrivateDriverDataSize Member ist sizeof(D3DDDI_FRAMELATENCYESCAPE)
und Bedingungen in den Anmerkungen erfüllt sind, interpretiert die Direct3D-Laufzeit die D3DDDICB_ESCAPE.pPrivateDriverData Member als Zeiger auf einen Puffer, der eine D3DDDI_FRAMELATENCYESCAPE Struktur enthält. Darüber hinaus verarbeitet die Laufzeit das pfnEscapeCb als Anforderung, die maximale Framelatenz des DirectX-Grafik-Kernels zu ändern, indem die angeforderten Informationen in den bereitgestellten Puffer geschrieben werden, anstatt einen DxgkDdiEscape- Aufruf an die KMD zu senden.
Wenn dieses Element festgelegt ist, müssen HardwareAccess- und DeviceStatusQuery- auf Null festgelegt werden.
Wird ab Windows 8.1 unterstützt.
Das Betriebssystem ignoriert dieses Element, wenn es vor Windows 8.1 liegt oder der Benutzermodustreiber mit einem OpenAdapterXxx-Aufruf initialisiert wurde, in dem der pOpenData-->Interface Member direct3D Version 8 oder früher angibt.
NoAdapterSynchronization
Reserved
Dieses Element ist reserviert und sollte auf Null festgelegt werden.
VirtualMachineData
Gibt an, dass DxgkDdiEscape- von einem virtuellen Computer aufgerufen wird. Dieses Kennzeichen kann nicht aus dem Benutzermodus festgelegt werden. Wird ab WDDM 2.2 unterstützt.
DriverKnownEscape
Die privaten Treiberdaten weisen auf eine bekannte Struktur hin.
DriverCommonEscape
Die privaten Daten weisen auf eine D3D-laufzeitdefinierte Struktur hin.
Reserved2
Dieses Element ist reserviert und sollte auf Null festgelegt werden.
Value
Ein Mitglied in der Union, das in D3DDDI_ESCAPEFLAGS enthalten ist, der einen 32-Bit-Wert enthalten kann, der angibt, wie Informationen freigegeben werden.
Bemerkungen
Wenn ChangeFrameLatency- festgelegt ist, wird ein pfnEscapeCb Aufruf nur erfolgreich ausgeführt, wenn:
- Die KMD ist für eine von einem einzelnen Anbieter bereitgestellte Konfiguration (Linked Adapter Configuration, LDA) verantwortlich.
- Die App hat zu einem bestimmten Zeitpunkt ihrer Lebensdauer exklusiven Vollbildmodus für die Anzeige übernommen.
- Die App hat den standardmäßigen maximalen Framelatenzwert 3 nicht außer Kraft gesetzt.
Wenn diese Bedingungen nicht erfüllt sind, gibt pfnEscapeCb Aufruf einen E_INVALIDARG Fehlercode zurück.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows Vista (WDDM 1.0) |
Header- | d3dukmdt.h (einschließlich D3dumddi.h, D3dkmddi.h) |