D3DKMT_ESCAPE structure (d3dkmthk.h)

The D3DKMT_ESCAPE structure describes information that is exchanged with the display miniport driver.

Syntax

typedef struct _D3DKMT_ESCAPE {
  [in]     D3DKMT_HANDLE      hAdapter;
  [in]     D3DKMT_HANDLE      hDevice;
  [in]     D3DKMT_ESCAPETYPE  Type;
  [in]     D3DDDI_ESCAPEFLAGS Flags;
  [in/out] VOID               *pPrivateDriverData;
  [in]     UINT               PrivateDriverDataSize;
  [in]     D3DKMT_HANDLE      hContext;
} D3DKMT_ESCAPE;

Members

[in] hAdapter

A handle to the graphics adapter that information is exchanged on.

[in] hDevice

A handle to a display device that is optionally specified if the information to be exchanged is specific to a particular device.

[in] Type

A value of type D3DKMT_ESCAPETYPE that indicates either to exchange information with the display miniport driver or to control kernel-mode components. The following table shows the possible values.

Value Meaning
D3DKMT_ESCAPE_DRIVERPRIVATE (0) The pPrivateDriverData member is targeted at the display miniport driver. The hardware vendor defines the format of the escape data.
D3DKMT_ESCAPE_VIDMM (1) Do not use. For testing purposes only. The OpenGL ICD controls the video memory manager (which is part of Dxgkrnl.sys). The buffer that pPrivateDriverData points to contains a D3DKMT_VIDMM_ESCAPE structure that supports various types of control of the video memory manager.
D3DKMT_ESCAPE_TDRDBGCTRL (2) Do not use. For testing purposes only. The escape operation lets the user control the behavior of the operating system's Timeout Detection and Recovery (TDR) process.
This functionality is disabled by default. To enable this functionality, the TdrTestMode = TdrTestMode DWORD registry value, which is stored in the HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers key, must be set to 1.
The PrivateDriverDataSize member is set to sizeof(int). The pPrivateDriverData member is set to an integer with a value from the D3DKMT_TDRDBGCTRLTYPE enumeration type.
D3DKMT_ESCAPE_VIDSCH (3) Do not use. For testing purposes only. The OpenGL ICD controls the graphics processing unit (GPU) scheduler (which is part of Dxgkrnl.sys). The buffer that pPrivateDriverData points to contains a D3DKMT_VIDSCH_ESCAPE structure that supports preemption control and suspending or resuming the scheduler.
D3DKMT_ESCAPE_DEVICE (4) Do not use. For testing purposes only. The OpenGL ICD controls the display device. The buffer that pPrivateDriverData points to contains a D3DKMT_DEVICE_ESCAPE structure that supports obtaining the video present source from the primary allocation.
D3DKMT_ESCAPE_DMM (5) Do not use. For testing purposes only. The OpenGL ICD controls the display mode manager. The buffer that pPrivateDriverData points to contains a D3DKMT_DMM_ESCAPE structure.
D3DKMT_ESCAPE_DEBUG_SNAPSHOT (6) Do not use. For testing purposes only. The OpenGL ICD retrieves a debug snapshot buffer. The buffer that pPrivateDriverData points to contains a D3DKMT_DEBUG_SNAPSHOT_ESCAPE structure.
D3DKMT_ESCAPE_SETDRIVERUPDATESTATUS (7) Do not use. For testing purposes only. The OpenGL ICD sets the display miniport driver update status.
D3DKMT_ESCAPE_DRT_TEST (8) Do not use. For testing purposes only.
D3DKMT_ESCAPE_DIAGNOSTICS (9) Do not use. For testing purposes only. Supported starting with Windows 8.
D3DKMT_ESCAPE_OUTPUTDUPL_SNAPSHOT (10) Do not use. For testing purposes only. Supported starting with Windows 8.
D3DKMT_ESCAPE_OUTPUTDUPL_DIAGNOSTICS (11) Do not use. For testing purposes only. Supported starting with Windows 8.
D3DKMT_ESCAPE_BDD_PNP (12) Do not use. For testing purposes only. Supported starting with Windows 8.
D3DKMT_ESCAPE_BDD_FALLBACK (13) Do not use. For testing purposes only. Supported starting with Windows 8.
D3DKMT_ESCAPE_ACTIVATE_SPECIFIC_DIAG(14) Do not use. For testing purposes only. Supported starting with Windows 8.
D3DKMT_ESCAPE_MODES_PRUNED_OUT(15) Do not use. For testing purposes only. Supported starting with Windows 8.
D3DKMT_ESCAPE_WQHL_INFO(16) Do not use. For testing purposes only. Supported starting with Windows 8.
D3DKMT_ESCAPE_BRIGHTNESS(17) Do not use. For testing purposes only. Supported starting with Windows 8.
D3DKMT_ESCAPE_EDID_CACHE(18) Do not use. For testing purposes only. Supported starting with Windows 8.
D3DKMT_ESCAPE_GENERIC_ADAPTER_DIAG_INFO(19) Do not use. For testing purposes only. Supported starting with Windows 8.
D3DKMT_ESCAPE_MIRACAST_DISPLAY_REQUEST (20) Do not use. For testing purposes only. Supported starting with Windows 8.1.
D3DKMT_ESCAPE_HISTORY_BUFFER_STATUS (21) Do not use. For testing purposes only. Supported starting with Windows 8.1.
D3DKMT_ESCAPE_MIRACAST_ADAPTER_DIAG_INFO (23) Do not use. For testing purposes only. Supported starting with Windows 8.1.
D3DKMT_ESCAPE_WIN32K_START(1024) Do not use. For testing purposes only. Supported starting with Windows 8.
D3DKMT_ESCAPE_WIN32K_HIP_DEVICE_INFO(1024) Do not use. For testing purposes only. Supported starting with Windows 8.
D3DKMT_ESCAPE_WIN32K_QUERY_CD_ROTATION_BLOCK (1025) Do not use. For testing purposes only. Supported starting with Windows 8.
D3DKMT_ESCAPE_WIN32K_DPI_INFO (1026) Do not use. For testing purposes only. Supported starting with Windows 8.1.
D3DKMT_ESCAPE_WIN32K_PRESENTER_VIEW_INFO (1027) Do not use. For testing purposes only. Supported starting with Windows 8.1.
D3DKMT_ESCAPE_WIN32K_SYSTEM_DPI (1028) Do not use. For testing purposes only. Supported starting with Windows 8.1.

[in] Flags

A D3DDDI_ESCAPEFLAGS structure that indicates, in bit-field flags, how to share information. The OpenGL ICD should specify the HardwareAccess bit-field flag to indicate that the display miniport driver must access graphics hardware in such a way that the operating system must perform the second level of synchronization into the display miniport driver for the DxgkDdiEscape call.

[in/out] pPrivateDriverData

A pointer to a buffer that the OpenGL ICD allocates that contains information that the OpenGL ICD either exchanges with the display miniport driver or uses to control kernel-mode components. The following table describes the content of the buffer that pPrivateDriverData points to, depending on the value of Type.

Value of the Type member Content of the pPrivateDriverData buffer
D3DKMT_ESCAPE_DRIVERPRIVATE Driver-specific. The buffer is not usable unless a tight coupling exists between the OpenGL ICD and the display miniport driver.
D3DKMT_ESCAPE_VIDMM Do not use. For testing purposes only. A D3DKMT_VIDMM_ESCAPE structure.
D3DKMT_ESCAPE_TDRDBGCTRL Do not use. For testing purposes only. A D3DKMT_TDRDBGCTRLTYPE enumeration type.
D3DKMT_ESCAPE_VIDSCH Do not use. For testing purposes only. A D3DKMT_VIDSCH_ESCAPE structure.
D3DKMT_ESCAPE_DEVICE Do not use. For testing purposes only. A D3DKMT_DEVICE_ESCAPE structure.
D3DKMT_ESCAPE_DMM Do not use. For testing purposes only. A D3DKMT_DMM_ESCAPE structure.
D3DKMT_ESCAPE_DEBUG_SNAPSHOT Do not use. For testing purposes only. A D3DKMT_DEBUG_SNAPSHOT_ESCAPE structure.

[in] PrivateDriverDataSize

The size, in bytes, of the buffer that pPrivateDriverData points to. The OpenGL ICD must specify the size of the buffer when it calls the D3DKMTEscape function.

[in] hContext

A handle to a context that is optionally specified if the information to be exchanged is specific to a particular device context. If the OpenGL ICD sets hContext to a non-NULL value, the ICD must have also set hDevice to a non-NULL value, and hDevice must correspond to the device that owns the context.

Remarks

For testing purposes, the OpenGL ICD can pass a pointer to a D3DKMT_ESCAPE structure in a call to the D3DKMTEscape function to control the video memory manager and GPU scheduler (which are part of Dxgkrnl.sys) and the behavior of the operating system's TDR process.

Requirements

Requirement Value
Minimum supported client Windows Vista
Header d3dkmthk.h (include D3dkmthk.h)

See also

D3DKMTEscape

D3DKMT_DEBUG_SNAPSHOT_ESCAPE

D3DKMT_DEVICE_ESCAPE

D3DKMT_DMM_ESCAPE

D3DKMT_TDRDBGCTRLTYPE

D3DKMT_VIDMM_ESCAPE

D3DKMT_VIDSCH_ESCAPE