Condividi tramite


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)

Vedere anche

D3DDDICB_ESCAPE

D3DDDI_EXECUTIONSTATEESCAPE

D3DDDI_FRAMELATENCYESCAPE

DXGKARG_ESCAPE

DxgkDdiEscape

pfnEscapeCb