COPPGetCertificateLength 函数

示例 COPPGetCertificateLength 函数检索图形硬件使用的证书的大小(以字节为单位)。

语法

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

参数

pThis [in]

  • 指向 COPP DirectX VA 设备对象的指针。

pCertificateLength [out]

  • 指向一个变量的指针,该变量接收图形硬件使用的证书的大小(以字节为单位)。

返回值

如果成功,则返回零 (S_OK 或DD_OK) ;否则,将返回错误代码。

注解

在收到对其 COPPGetCertificateLength 函数的调用之前,应初始化 COPP DirectX VA 设备。 也就是说,应在 COPPGetCertificateLength 之前调用 COPPOpenVideoSession 函数。 如果在 COPPOpenVideoSession 之前调用 COPPGetCertificateLength,则 COPPGetCertificateLength 应返回E_UNEXPECTED。

将 RenderMoComp 映射到 COPPGetCertificateLength

示例 COPPGetCertificateLength 函数直接映射到对 DD_MOTIONCOMPCALLBACKS 结构的 RenderMoComp 成员的调用。 RenderMoComp 成员指向引用 DD_RENDERMOCOMPDATA 结构的显示驱动程序提供的 DdMoCompRender 回调函数。

调用 RenderMoComp 回调函数时不首先调用显示驱动程序提供的 BeginMoCompFrame 或 EndMoCompFrame 函数。

填充DD_RENDERMOCOMPDATA结构如下所示。

成员 Value
dwNumBuffers Zero。
lpBufferInfo NULL。
dwFunction DXVA_COPPGetCertificateLengthFnCode dxva.h) 中定义的常量 (。
lpInputData NULL。
lpOutputData 指向 ULONG 类型变量的指针。

示例代码

以下代码提供了如何实现 COPPGetCertificateLength 函数的示例:

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;
}

要求

目标平台 版本
桌面 此函数仅适用于带有 SP1 及更高版本的 Windows Server 2003 以及 SP2 及更高版本的 Windows XP。