struttura D3DDDI_ESCAPEFLAGS (d3dukmdt.h)
La struttura D3DDDI_ESCAPEFLAGS identifica il modo in cui il driver di visualizzazione in modalità utente (UMD) (o driver client) condivide le informazioni con il driver miniport (KMD) in modalità kernel.
Sintassi
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;
Membri
HardwareAccess
Valore UINT che specifica se il sistema operativo esegue il secondo livello di sincronizzazione nel KMD per la chiamata DxgkDdiE scape. Se il driver richiede il secondo livello di sincronizzazione e il flag HardwareAccess non è impostato, la chiamata alla funzione DxgkDdiEscape del driver dovrebbe non riuscire.
A partire da Windows 8.1, se questo membro è impostato, DeviceStatusQuery e ChangeFrameLatency deve essere impostato su zero.
DeviceStatusQuery
Se impostato, quando viene chiamata la funzione pfnEscapeCbe il D3DDDICB_ESCAPE.membro PrivateDriverDataSize è sizeof(D3DDDI_EXECUTIONSTATEESCAPE)
, il runtime Direct3D interpreta il D3DDDICB_ESCAPE. membro pPrivateDriverData come puntatore a un buffer contenente una struttura D3DDDI_EXECUTIONSTATEESCAPE. Inoltre, il runtime elabora il pfnEscapeCb come query di stato scrivendo le informazioni richieste nel buffer fornito invece di inviare un DxgkDdiEscape chiamata al KMD.
Se questo membro è impostato, HardwareAccess e ChangeFrameLatency deve essere impostato su zero.
Supportato a partire da Windows 8.1.
Il sistema operativo ignora questo membro se è precedente a Windows 8.1 o se il driver in modalità utente è stato inizializzato con una chiamata OpenAdapterXxx in cui il pOpenData->membro interface indica Direct3D versione 8 o precedente.
ChangeFrameLatency
Se impostato, quando viene chiamata la funzione pfnEscapeCb, il D3DDDICB_ESCAPE.membro PrivateDriverDataSize viene sizeof(D3DDDI_FRAMELATENCYESCAPE)
e vengono soddisfatte anche le condizioni in Osservazioni, il runtime Direct3D interpreta il D3DDDICB_ESCAPE.membro pPrivateDriverData come puntatore a un buffer contenente una struttura D3DDDI_FRAMELATENCYESCAPE. Inoltre, il runtime elabora il pfnEscapeCb come richiesta di modificare la latenza massima del frame del sottosistema del kernel grafico DirectX scrivendo le informazioni richieste nel buffer fornito anziché inviare una DxgkDdiEscape chiamata al KMD.
Se questo membro è impostato, HardwareAccess e DeviceStatusQuery deve essere impostato su zero.
Supportato a partire da Windows 8.1.
Il sistema operativo ignora questo membro se è precedente a Windows 8.1 o se il driver in modalità utente è stato inizializzato con una chiamata OpenAdapterXxx in cui il pOpenData->membro interface indica Direct3D versione 8 o precedente.
NoAdapterSynchronization
Reserved
Questo membro è riservato e deve essere impostato su zero.
VirtualMachineData
Indica che dxgkDdiEscape viene chiamato da una macchina virtuale. Questo flag non può essere impostato dalla modalità utente. Supportato a partire da WDDM 2.2.
DriverKnownEscape
I dati privati del driver puntano a una struttura nota.
DriverCommonEscape
I dati privati puntano a una struttura definita dal runtime D3D.
Reserved2
Questo membro è riservato e deve essere impostato su zero.
Value
Membro dell'unione contenuto in D3DDDI_ESCAPEFLAGS che può contenere un valore a 32 bit che identifica come condividere le informazioni.
Osservazioni
Se è impostata ChangeFrameLatency, una chiamatapfnEscapeCbavrà esito positivo solo se:
- Il KmD è responsabile di una configurazione dell'adattatore collegato (LDA) fornita da un singolo fornitore.
- L'app ha acquisito la proprietà esclusiva a schermo intero dello schermo a un certo punto della sua durata.
- L'app non ha eseguito l'override del valore predefinito di latenza massima dei fotogrammi pari a 3.
Se queste condizioni non vengono soddisfatte, chiamata pfnEscapeCb restituisce un codice di errore E_INVALIDARG.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows Vista (WDDM 1.0) |
intestazione | d3dukmdt.h (include D3dumddi.h, D3dkmddi.h) |