COPPGetCertificateLength function

The sample COPPGetCertificateLength function retrieves the size, in bytes, of the certificate used by the graphics hardware.

Syntax

HRESULT COPPGetCertificateLength(
  _In_  COPP_DeviceData pThis,
  _Out_ ULONG           *pCertificateLength
);

Parameters

pThis [in]

  • Pointer to the COPP DirectX VA device object.

pCertificateLength [out]

  • Pointer to a variable that receives the size, in bytes, of the certificate used by the graphics hardware.

Return value

Returns zero (S_OK or DD_OK) if successful; otherwise, returns an error code.

Remarks

A COPP DirectX VA device should be initialized before receiving a call to its COPPGetCertificateLength function. That is, the COPPOpenVideoSession function should be called before COPPGetCertificateLength. If COPPGetCertificateLength is called before COPPOpenVideoSession, COPPGetCertificateLength should return E_UNEXPECTED.

Mapping RenderMoComp to COPPGetCertificateLength

The sample COPPGetCertificateLength function maps directly to a call to the RenderMoComp member of the DD_MOTIONCOMPCALLBACKS structure. The RenderMoComp member points to the display driver-supplied DdMoCompRender callback function that references the DD_RENDERMOCOMPDATA structure.

The RenderMoComp callback function is called without the display driver-supplied BeginMoCompFrame or EndMoCompFrame function being called first.

The DD_RENDERMOCOMPDATA structure is filled as follows.

Member Value
dwNumBuffers Zero.
lpBufferInfo NULL.
dwFunction DXVA_COPPGetCertificateLengthFnCode constant (defined in dxva.h).
lpInputData NULL.
lpOutputData Pointer to a ULONG-typed variable.

Example Code

The following code provides an example of how you can implement your COPPGetCertificateLength function:

HRESULT
COPPGetCertificateLength(
    COPP_DeviceData* pThis,
    DWORD* pCertificateLength
    )
{
    if (pThis->m_COPPDevState != COPP_OPENED) {
        return E_UNEXPECTED;
    }
    *pCertificateLength = sizeof(TestCert);
    pThis->m_COPPDevState = COPP_CERT_LENGTH_RETURNED;
    return NO_ERROR;
}

Requirements

Target platform Version
Desktop This function applies only to Windows Server 2003 with SP1 and later, and Windows XP with SP2 and later.