structure D3DDDI_ESCAPEFLAGS (d3dukmdt.h)
La structure D3DDDI_ESCAPEFLAGS identifie comment le pilote d’affichage en mode utilisateur (UMD) (ou pilote client) partage des informations avec le pilote de miniport (KMD) en mode noyau.
Syntaxe
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;
Membres
HardwareAccess
Valeur UINT qui spécifie si le système d’exploitation effectue le deuxième niveau de synchronisation dans le KMD pour l’appel DxgkDdiEscape. Si le pilote nécessite le deuxième niveau de synchronisation et que l’indicateur de HardwareAccess n’est pas défini, l’appel à la fonction DxgkDdiEscape du pilote doit échouer.
À compter de Windows 8.1, si ce membre est défini, DeviceStatusQuery et ChangeFrameLatency doit être défini sur zéro.
DeviceStatusQuery
Si elle est définie, lorsque la fonction pfnEscapeCb est appelée et la D3DDDICB_ESCAPE.privateDriverDataSize membre est sizeof(D3DDDI_EXECUTIONSTATEESCAPE)
, le runtime Direct3D interprète le D3DDDICB_ESCAPE.membre pPrivateDriverData en tant que pointeur vers une mémoire tampon qui contient une structure D3DDDI_EXECUTIONSTATEESCAPE. En outre, le runtime traite le pfnEscapeCb en tant que requête d’état en écrivant les informations demandées dans la mémoire tampon fournie au lieu d’envoyer un DxgkDdiEscape appel au KMD.
Si ce membre est défini, HardwareAccess et changeFrameLatency doit être défini sur zéro.
Prise en charge à partir de Windows 8.1.
Le système d’exploitation ignore ce membre s’il est antérieur à Windows 8.1 ou si le pilote en mode utilisateur a été initialisé avec un appel OpenAdapterXxx où le pOpenData->interface membre indique Direct3D version 8 ou antérieure.
ChangeFrameLatency
Si elle est définie, lorsque la fonction pfnEscapeCb est appelée, la D3DDDICB_ESCAPE.privateDriverDataSize membre est sizeof(D3DDDI_FRAMELATENCYESCAPE)
et les conditions des remarques sont également remplies, le runtime Direct3D interprète le D3DDDICB_ESCAPE.membre pPrivateDriverData en tant que pointeur vers une mémoire tampon qui contient une structure D3DDDI_FRAMELATENCYESCAPE. En outre, le runtime traite le pfnEscapeCb en tant que demande de modification de la latence maximale du sous-système du noyau graphique DirectX en écrivant les informations demandées dans la mémoire tampon fournie au lieu d’envoyer un DxgkDdiEscape appel au KMD.
Si ce membre est défini, HardwareAccess et DeviceStatusQuery doit être défini sur zéro.
Prise en charge à partir de Windows 8.1.
Le système d’exploitation ignore ce membre s’il est antérieur à Windows 8.1 ou si le pilote en mode utilisateur a été initialisé avec un appel OpenAdapterXxx où le pOpenData->interface membre indique Direct3D version 8 ou antérieure.
NoAdapterSynchronization
Reserved
Ce membre est réservé et doit être défini sur zéro.
VirtualMachineData
Indique que DxgkDdiEscape est appelé à partir d’une machine virtuelle. Cet indicateur ne peut pas être défini à partir du mode utilisateur. Prise en charge à partir de WDDM 2.2.
DriverKnownEscape
Les données privées du pilote pointent vers une structure bien connue.
DriverCommonEscape
Les données privées pointent vers une structure définie par le runtime D3D.
Reserved2
Ce membre est réservé et doit être défini sur zéro.
Value
Membre de l’union contenu dans D3DDDI_ESCAPEFLAGS qui peut contenir une valeur 32 bits qui identifie comment partager des informations.
Remarques
Si changeFrameLatency est défini, un appel pfnEscapeCb réussit uniquement si :
- Le KMD est responsable d’une configuration d’adaptateur lié fournie par un seul fournisseur.
- L’application a pris une propriété exclusive en plein écran de l’affichage à un moment donné dans sa durée de vie.
- L’application n’a pas remplacé la valeur de latence maximale d’image par défaut de 3.
Si ces conditions ne sont pas remplies, appel pfnEscapeCb retourne un code d’erreur E_INVALIDARG.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows Vista (WDDM 1.0) |
d’en-tête | d3dukmdt.h (include D3dumddi.h, D3dkmddi.h) |