COPPOpenVideoSession 函数

示例 COPPOpenVideoSession 函数初始化用于当前视频会话的 COPP DirectX VA 设备对象。

语法

HRESULT COPPOpenVideoSession(
  _In_ COPP_DeviceData pThis,
  _In_ ULONG           DevID
);

参数

pThis [in]

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

DevID [in]

  • 提供 COPP 设备所附加到的图形设备的标识符。

返回值

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

注解

在调用 COPP 设备类的任何其他成员函数之前,必须通过调用 COPPOpenVideoSession 来初始化 COPP 设备。 COPPOpenVideoSession 应初始化 (设置为 0) 视频会话针对每种受支持的保护类型的本地保护级别,并递增相应的全局保护级别计数器。 有关详细信息,请参阅处理保护级别。

如果 DevID 参数标识的设备驱动使用 DualView 以外的模式的多个图形适配器,则 COPPOpenVideoSession 应返回DDERR_UNSUPPORTEDMODE。 有关详细信息,请参阅 COPP 和 Multiple-Monitor 支持。

示例 COPPOpenVideoSession 函数直接映射到 DD_MOTIONCOMPCALLBACKS 结构的 CreateMoComp 成员。 CreateMoComp 成员指向引用DD_CREATEMOCOMPDATA结构的显示驱动程序提供的 DdMoCompCreate 回调函数。 DD_CREATEMOCOMPDATA 的 lpGuid 成员指向 COPP DirectX VA 设备 GUID。

示例代码

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

HRESULT
COPPOpenVideoSession(
    COPP_DeviceData* pThis,
    DWORD DevID
    )
{
    DWORD i;
    pThis->m_DevID = DevID;
    pThis->m_CmdSeqNumber = (DWORD)-1;
    pThis->m_StatusSeqNumber = (DWORD)-1;
    pThis->m_COPPDevState = COPP_OPENED;
    memset(&pThis->m_AesHelper, 0, sizeof(pThis->m_AesHelper));
    //
    // make sure the session protection levels are reset
    //
    memset(&pThis->m_LocalLevel, 0, sizeof(pThis->m_LocalLevel));
    //
    // initialize the session local protection levels and
    // increment the corresponding global protection level counter
    //
    // enumerate all the protection types supported by this connector
    DWORD j;
    for (j = COPP_ProtectionType_HDCP, i = COPP_ProtectionTypeIndex_HDCP;
         j & COPP_ProtectionType_Mask; j <<= 1, i++) {
        // for each type supported, make sure the initial level
        // is set correctly
        if (g_ConnectorInfo[pThis->m_DevID].ProtectionTypeMask & j) {
            pThis->m_LocalLevel[i] = 0;
            g_COPPLevels[pThis->m_DevID].Levels[i][0]++;
        }
        else {
            pThis->m_LocalLevel[i] = COPP_NoProtectionLevelAvailable;
        }
    }
    return NO_ERROR;
}

要求

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