// d3dukmdt.h
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;
View the official Windows Driver Kit DDI referenceNo description available.
The D3DDDI_ESCAPEFLAGS structure identifies how the user-mode display driver (UMD) (or client driver) shares information with the kernel-mode display miniport driver (KMD).
HardwareAccessA UINT value that specifies whether the OS performs the second level of synchronization into the KMD for the DxgkDdiEscape call. If the driver requires the second level of synchronization and the HardwareAccess flag isn't set, the call to the driver's DxgkDdiEscape function should fail.
Starting in Windows 8.1, if this member is set, DeviceStatusQuery and ChangeFrameLatency must be set to zero.
DeviceStatusQueryIf set, when the pfnEscapeCb function is called and the D3DDDICB_ESCAPE.PrivateDriverDataSize member is sizeof(D3DDDI_EXECUTIONSTATEESCAPE), the Direct3D runtime interprets the D3DDDICB_ESCAPE.pPrivateDriverData member as a pointer to a buffer that contains a D3DDDI_EXECUTIONSTATEESCAPE structure. In addition, the runtime processes the pfnEscapeCb as a status query by writing the requested info into the provided buffer instead of sending a DxgkDdiEscape call to the KMD.
If this member is set, HardwareAccess and ChangeFrameLatency must be set to zero.
Supported starting with Windows 8.1.
The operating system ignores this member if it is prior to Windows 8.1, or if the user-mode driver was initialized with an OpenAdapterXxx call where the pOpenData->Interface member indicates Direct3D version 8 or earlier.
ChangeFrameLatencyIf set, when the pfnEscapeCb function is called, the D3DDDICB_ESCAPE.PrivateDriverDataSize member is sizeof(D3DDDI_FRAMELATENCYESCAPE) and conditions in Remarks are also met, the Direct3D runtime interprets the D3DDDICB_ESCAPE.pPrivateDriverData member as a pointer to a buffer that contains a D3DDDI_FRAMELATENCYESCAPE structure. In addition, the runtime processes the pfnEscapeCb as a request to change the DirectX graphics kernel subsystem's maximum frame latency by writing the requested info into the provided buffer instead of sending a DxgkDdiEscape call to the KMD.
If this member is set, HardwareAccess and DeviceStatusQuery must be set to zero.
Supported starting with Windows 8.1.
The operating system ignores this member if it is prior to Windows 8.1, or if the user-mode driver was initialized with an OpenAdapterXxx call where the pOpenData->Interface member indicates Direct3D version 8 or earlier.
NoAdapterSynchronizationVirtualMachineDataIndicates that DxgkDdiEscape is called from a virtual machine. This flag can't be set from user mode. Supported starting with WDDM 2.2.
DriverKnownEscapeThe driver private data points to a well known structure.
DriverCommonEscapeThe private data points to a D3D runtime-defined structure.
Reserved2This member is reserved and should be set to zero.
ReservedThis member is reserved and should be set to zero.
ValueA member in the union that is contained in D3DDDI_ESCAPEFLAGS that can hold one 32-bit value that identifies how to share information.
If ChangeFrameLatency is set, a pfnEscapeCb call will succeed only if:
If these conditions are not met, pfnEscapeCb call returns an E_INVALIDARG error code.