Mapping the COPP DDI to DirectDraw and DirectX VA

This section applies only to Windows Server 2003 SP1 and later, and Windows XP SP2 and later.

COPP functionality must be accessed through the motion compensation callback functions of DirectDraw, to which the COPP DDI can be mapped. Because the COPP DDI is implemented in the video miniport driver, the display driver must communicate with the video miniport driver by using COPP IOCTLs.

The COPP DDI can be mapped to the motion compensation callback functions because they do not use typed parameters (that is, their single parameter is a pointer to a structure). In other words, the information in the single parameter that is passed to a motion compensation callback function can be processed according to its information type.

For example, if DXVA_COPPGetCertificateLengthFnCode-type information is passed to the DdMoCompRender function, then DdMoCompRender can initiate a call to the COPPGetCertificateLength function of the COPP DDI to query for the length in bytes of the certificate used by the graphics hardware. However, if DXVA_COPPSequenceStartFnCode-type information is passed to DdMoCompRender instead, then DdMoCompRender can initiate a call to the COPPSequenceStart function of the COPP DDI to indicate the start of a protected command and status sequence on the current video session.

The following topics describe how the COPP DDI is mapped to the motion compensation callback functions:

DirectX VA COPP Device

Calling the COPP DDI from a User-Mode Component

Calling the COPP DDI from the Display Driver