Partager via


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)

Voir aussi

D3DDDICB_ESCAPE

D3DDDI_EXECUTIONSTATEESCAPE

D3DDDI_FRAMELATENCYESCAPE

DXGKARG_ESCAPE

DxgkDdiEscape

pfnEscapeCb