DXGK_DISPLAYMUX_INTERFACE_2 structure (dispmprt.h)

The DXGK_DISPLAYMUX_INTERFACE_2 structure contains pointers to functions that are implemented by the kernel-mode display miniport driver (KMD) to support version 2 of the automatic display switching feature.

Syntax

typedef struct _DXGK_DISPLAYMUX_INTERFACE_2 {
  USHORT                                              Size;
  USHORT                                              Version;
  PVOID                                               Context;
  PINTERFACE_REFERENCE                                InterfaceReference;
  PINTERFACE_DEREFERENCE                              InterfaceDereference;
  DXGKDDI_DISPLAYMUX_GET_DRIVER_SUPPORT_LEVEL         DxgkDdiDisplayMuxGetDriverSupportLevel;
  DXGKDDI_DISPLAYMUX_GET_RUNTIME_STATUS               DxgkDdiDisplayMuxGetRuntimeStatus;
  DXGKDDI_DISPLAYMUX_PRE_SWITCH_AWAY                  DxgkDdiDisplayMuxPreSwitchAway;
  DXGKDDI_DISPLAYMUX_PRE_SWITCH_AWAY_GET_PRIVATE_DATA DxgkDdiDisplayMuxPreSwitchAwayGetPrivateData;
  DXGKDDI_DISPLAYMUX_PRE_SWITCH_TO                    DxgkDdiDisplayMuxPreSwitchTo;
  DXGKDDI_DISPLAYMUX_SWITCH_CANCELED                  DxgkDdiDisplayMuxSwitchCanceled;
  DXGKDDI_DISPLAYMUX_POST_SWITCH_AWAY                 DxgkDdiDisplayMuxPostSwitchAway;
  DXGKDDI_DISPLAYMUX_POST_SWITCH_TO_PHASE1            DxgkDdiDisplayMuxPostSwitchToPhase1;
  DXGKDDI_DISPLAYMUX_POST_SWITCH_TO_PHASE2            DxgkDdiDisplayMuxPostSwitchToPhase2;
  DXGKDDI_DISPLAYMUX_UPDATE_STATE                     DxgkDdiDisplayMuxUpdateState;
  DXGKDDI_DISPLAYMUX_REPORT_PRESENCE                  DxgkDdiDisplayMuxReportPresence;
  DXGKDDI_DISPLAYMUX_SET_INTERNAL_PANEL_INFO          DxgkDdiDisplayMuxSetInternalPanelInfo;
} DXGK_DISPLAYMUX_INTERFACE_2, *PDXGK_DISPLAYMUX_INTERFACE_2;

Members

Size

[in] The size, in bytes, of this structure.

Version

[in] The version number of the display mux interface. Version should be set to DXGK_DISPLAYMUX_INTERFACE_VERSION_1 for this structure.

Context

[in] A pointer to a private context block.

InterfaceReference

[out] Pointer to a KMD-implemented interface reference function.

InterfaceDereference

[out] Pointer to a KMD-implemented interface dereference function.

DxgkDdiDisplayMuxGetDriverSupportLevel

[out] Pointer to KMD's DxgkDdiDisplayMuxGetDriverSupportLevel callback function.

DxgkDdiDisplayMuxGetRuntimeStatus

[out] Pointer to KMD's DxgkDdiDisplayMuxGetRuntimeStatus callback function.

DxgkDdiDisplayMuxPreSwitchAway

[out] Pointer to KMD's DxgkDdiDisplayMuxPreSwitchAway callback function.

DxgkDdiDisplayMuxPreSwitchAwayGetPrivateData

[out] Pointer to KMD's DxgkDdiDisplayMuxPreSwitchAwayGetPrivateData callback function.

DxgkDdiDisplayMuxPreSwitchTo

[out] Pointer to KMD's DxgkDdiDisplayMuxPreSwitchTo callback function.

DxgkDdiDisplayMuxSwitchCanceled

[out] Pointer to KMD's DxgkDdiDisplayMuxSwitchCanceled callback function.

DxgkDdiDisplayMuxPostSwitchAway

[out] Pointer to KMD's DxgkDdiDisplayMuxPostSwitchAway callback function.

DxgkDdiDisplayMuxPostSwitchToPhase1

[out] Pointer to KMD's DxgkDdiDisplayMuxPostSwitchToPhase1 callback function.

DxgkDdiDisplayMuxPostSwitchToPhase2

[out] Pointer to KMD's DxgkDdiDisplayMuxPostSwitchToPhase2 callback function.

DxgkDdiDisplayMuxUpdateState

[out] Pointer to KMD's DxgkDdiDisplayMuxUpdateState callback function.

DxgkDdiDisplayMuxReportPresence

[out] Pointer to KMD's DxgkDdiDisplayMuxReportPresence callback function.

DxgkDdiDisplayMuxSetInternalPanelInfo

[out] Pointer to KMD's DxgkDdiDisplayMuxSetInternalPanelInfo callback function.

Remarks

The OS queries for KMD's DXGK_DISPLAYMUX_INTERFACE_2 at driver start. It does so by calling KMD's DxgkDdiQueryInterface function with QueryInterface->InterfaceType set to GUID_WDDM_INTERFACE_DISPLAYMUX_2. If the KMD supports this interface, it returns a DXGK_DISPLAYMUX_INTERFACE_2 structure with pointers to its automatic display switch callbacks.

A driver that exposes the GUID_WDDM_INTERFACE_DISPLAYMUX_2 interface must set DXGK_CHILD_CAPABILITIES.Type.IntegratedDisplayChild.DescriptorLength to zero at adapter start if the mux isn't currently switched to the driver's GPU. Otherwise, the OS will fail the adapter start.

For more information, see Automatic Display Switch.

Requirements

Requirement Value
Minimum supported client Windows 11, version 24H2, update 2025.01 (WDDM 3.2)
Header dispmprt.h

See also

DxgkddiAddDevice

DxgkDdiQueryInterface

QUERY_INTERFACE