D3DDDI_ESCAPEFLAGS structure (d3dukmdt.h)

The D3DDDI_ESCAPEFLAGS structure identifies how the user-mode display driver shares information with the display miniport driver.

Syntax

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;

Members

HardwareAccess

A UINT value that specifies whether the operating system performs the second level of synchronization into the display miniport driver for the DxgkDdiEscape call. If the driver requires the second level of synchronization and the HardwareAccess flag is not 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.

Setting this member is equivalent to setting the first bit of the 32-bit Value member (0x00000001).

DeviceStatusQuery

If 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 display miniport driver.

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.

Setting this member is equivalent to setting the second bit of the 32-bit Value member (0x00000002).

ChangeFrameLatency

If 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 display miniport driver.

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.

Setting this member is equivalent to setting the third bit of the 32-bit Value member (0x00000004).

NoAdapterSynchronization

Reserved

This member is reserved and should be set to zero. Setting this member to zero is equivalent to setting the remaining 29 bits (0xFFFFFFF8) of the 32-bit Value member to zeros.

This member is reserved and should be set to zero. Setting this member to zero is equivalent to setting the remaining 31 bits (0xFFFFFFFE) of the 32-bit Value member to zeros.

VirtualMachineData

Indicates that DxgkDdiEscape is called from a virtual machine.

DriverKnownEscape

The driver private data points to a well known structure.

DriverCommonEscape

The private data points runtime defined structure.

Reserved2

This member is reserved and should be set to zero.

Value

A member in the union that is contained in D3DDDI_ESCAPEFLAGS that can hold one 32-bit value that identifies how to share information.

Remarks

If ChangeFrameLatency is set, a pfnEscapeCb call will succeed only if:

  • The display miniport driver is responsible for a linked adapter configuration (LDA) provided by a single vendor.
  • The app has taken exclusive full-screen ownership of the display at some point in its lifetime.
  • The app has not overridden the default maximum frame latency value of 3.
If these conditions are not met, pfnEscapeCb call returns an E_INVALIDARG error code.

Requirements

Requirement Value
Minimum supported client Available in Windows Vista and later versions of the Windows operating system.
Header d3dukmdt.h (include D3dumddi.h, D3dkmddi.h)

See also

D3DDDICB_ESCAPE

D3DDDI_EXECUTIONSTATEESCAPE

D3DDDI_FRAMELATENCYESCAPE

DXGKARG_ESCAPE

DxgkDdiEscape

pfnEscapeCb