estructura D3DDDI_ESCAPEFLAGS (d3dukmdt.h)
La estructura D3DDDI_ESCAPEFLAGS identifica cómo el controlador de pantalla en modo de usuario (UMD) (o controlador cliente) comparte información con el controlador de miniporte de pantalla en modo kernel (KMD).
Sintaxis
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;
Miembros
HardwareAccess
Valor UINT que especifica si el sistema operativo realiza el segundo nivel de sincronización en el KMD para la llamada DxgkDdiEscape. Si el controlador requiere el segundo nivel de sincronización y no se establece la marca hardwareAccess , se debería producir un error en la llamada a la función DxgkDdiEscape del controlador.
A partir de Windows 8.1, si se establece este miembro, DeviceStatusQuery y ChangeFrameLatency debe establecerse en cero.
DeviceStatusQuery
Si se establece, cuando se llama a la funciónpfnEscapeCb y al D3DDDICB_ESCAPE.miembro privateDriverDataSize es sizeof(D3DDDI_EXECUTIONSTATEESCAPE)
, el entorno de ejecución de Direct3D interpreta el D3DDDICB_ESCAPE.miembro pPrivateDriverData como puntero a un búfer que contiene una estructura de D3DDDI_EXECUTIONSTATEESCAPE. Además, el tiempo de ejecución procesa el pfnEscapeCb como consulta de estado escribiendo la información solicitada en el búfer proporcionado en lugar de enviar un DxgkDdiEscape llamada al KMD.
Si se establece este miembro, hardwareAccess y ChangeFrameLatency debe establecerse en cero.
Se admite a partir de Windows 8.1.
El sistema operativo omite este miembro si es anterior a Windows 8.1 o si el controlador en modo de usuario se inicializó con un OpenAdapterXxx llamada a donde el pOpenData->Interface indica direct3D versión 8 o anterior.
ChangeFrameLatency
Si se establece, cuando se llama a la función depfnEscapeCb de, el D3DDDICB_ESCAPE.miembro de PrivateDriverDataSize es sizeof(D3DDDI_FRAMELATENCYESCAPE)
y también se cumplen las condiciones de comentarios, el tiempo de ejecución de Direct3D interpreta el D3DDDICB_ESCAPE.miembro pPrivateDriverData como puntero a un búfer que contiene una estructura de D3DDDI_FRAMELATENCYESCAPE. Además, el tiempo de ejecución procesa el pfnEscapeCb como una solicitud para cambiar la latencia máxima de fotogramas del subsistema de kernel gráficos de DirectX escribiendo la información solicitada en el búfer proporcionado en lugar de enviar un DxgkDdiEscape llamada al KMD.
Si se establece este miembro, hardwareAccess y DeviceStatusQuery debe establecerse en cero.
Se admite a partir de Windows 8.1.
El sistema operativo omite este miembro si es anterior a Windows 8.1 o si el controlador en modo de usuario se inicializó con un OpenAdapterXxx llamada a donde el pOpenData->Interface indica direct3D versión 8 o anterior.
NoAdapterSynchronization
Reserved
Este miembro está reservado y debe establecerse en cero.
VirtualMachineData
Indica que dxgkDdiEscape se llama desde una máquina virtual. Esta marca no se puede establecer desde el modo de usuario. Se admite a partir de WDDM 2.2.
DriverKnownEscape
Los datos privados del controlador apuntan a una estructura conocida.
DriverCommonEscape
Los datos privados apuntan a una estructura definida por el entorno de ejecución D3D.
Reserved2
Este miembro está reservado y debe establecerse en cero.
Value
Miembro de la unión contenida en D3DDDI_ESCAPEFLAGS que puede contener un valor de 32 bits que identifica cómo compartir información.
Observaciones
Si se establece ChangeFrameLatency, una llamada pfnEscapeCb solo se realizará correctamente si:
- El KMD es responsable de una configuración de adaptador vinculado (LDA) proporcionada por un único proveedor.
- La aplicación ha tomado la propiedad exclusiva de pantalla completa de la pantalla en algún momento de su vigencia.
- La aplicación no ha invalidado el valor predeterminado de latencia máxima de fotogramas de 3.
Si no se cumplen estas condiciones, llamada pfnEscapeCb devuelve un código de error E_INVALIDARG.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows Vista (WDDM 1.0) |
encabezado de | d3dukmdt.h (incluya D3dumddi.h, D3dkmddi.h) |