DXGKDDI_ENUMVIDPNCOFUNCMODALITY callback function (d3dkmddi.h)

The DxgkDdiEnumVidPnCofuncModality function makes the source and target modes sets of a VidPN cofunctional with the VidPN's topology and the modes that have already been pinned.

Syntax

DXGKDDI_ENUMVIDPNCOFUNCMODALITY DxgkddiEnumvidpncofuncmodality;

NTSTATUS DxgkddiEnumvidpncofuncmodality(
  IN_CONST_HANDLE hAdapter,
  IN_CONST_PDXGKARG_ENUMVIDPNCOFUNCMODALITY_CONST pEnumCofuncModality
)
{...}

Parameters

hAdapter

A handle to a context block associated with a display adapter. The display miniport driver previously provided this handle to the DirectX graphics kernel subsystem in the MiniportDeviceContext output parameter of the DxgkDdiAddDevice function.

pEnumCofuncModality

A pointer to a DXGKARG_ENUMVIDPNCOFUNCMODALITY structure that contains function arguments.

Return value

DxgkDdiEnumVidPnCofuncModality returns STATUS_SUCCESS if it succeeds; otherwise, it returns one of the error codes defined in Ntstatus.h.

Remarks

The hConstrainingVidPn member of pEnumCofuncModalityArg is a handle to a VidPN object called the constraining VidPN. Other members of pEnumCofuncModalityArg identify one video present source or target as the pivot of the enumeration (or specify that there is no pivot).

DxgkDdiEnumVidPnCofuncModality must perform the following tasks:

  • Examine the topology and mode sets of the constraining VidPN.
  • Update each mode set that is not the pivot and does not already have a pinned mode. The updated mode sets must be cofunctional with the VidPN's topology and with any modes that have already been pinned.
Note that if a source or target is identified as the pivot of the enumeration, the mode set for that source or target must not change. For more information about how to update source and target mode sets, see Enumerating Cofunctional VidPN Source and Target Modes.

The DxgkDdiEnumVidPnCofuncModality function should be made pageable.

Requirements

Requirement Value
Minimum supported client Windows Vista
Target Platform Desktop
Header d3dkmddi.h
IRQL PASSIVE_LEVEL