自动组件吊销和续订

Microsoft 可以撤销被视为已泄露的软件应用程序或组件。 Windows 媒体格式客户端扩展 API 为组件的自动吊销和续订提供了一种机制。

吊销的组件在 Microsoft 发布的证书吊销列表中列出。 吊销组件时,其证书将添加到证书吊销列表,并在 Microsoft 服务器上更新 BLOB (REV_INFO) 吊销信息。

若要在用户尝试处理受 Windows Media DRM 保护的内容时执行自动吊销和续订,应用程序必须执行以下操作:

  1. 从许可证中提取REV_INFO版本。 REV_INFO版本号位于 XMR 许可证中的以下位置:

    <LICENSE version="2.0.0.0">
        <LICENSORINFO/>
        <DATA>
            <LID>...</LID>
            <KID>...</KID>
            <RevInfoVersion>42</RevInfoVersion>
            ...
         </DATA>
    ....
    </LICENSE>
    
  2. 通过调用 IWMDRMSecurity::GetRevocationDataVersion 方法,将许可证的REV_INFO版本号与本地存储中的REV_INFO版本号进行比较。

  3. 如果REV_INFO版本不是最新的,请调用 IWMDRMSecurity::P erformSecurityUpdate 方法,并在 dwFlags 参数中传递 WMDRM_SECURITY_PERFORM_REVOCATION_REFRESH 标志。

  4. 通过调用 IWMDRMSecurity::GetRevocationData 方法从本地存储检索证书吊销列表。

  5. 分析吊销列表,并检查 Windows Media DRM 吊销。 有关详细信息,请参阅 检查证书吊销

  6. 如果存在任何 Windows Media DRM 吊销:

    1. 通过调用 IWMDRMSecurity::GetContentEnablersForRevocations 方法创建内容启用程序来续订吊销的组件。

    2. 调用 IMFContentEnabler::AutomaticEnable ,它将用户定向到包含组件续订信息的 URL。 媒体基础 SDK () https://msdn.microsoft.com/library/ms694197(VS.85).aspx 中介绍了此方法。

      注意

      必须使用隐私声明向用户阐明此过程,因为更新过程会将信息从客户端计算机发送到 Microsoft 网站。

       

    3. 如果可能,用户将从 URL 自动续订组件,也可以按照特定说明续订。 在某些情况下,组件无法续订。

    4. 再次尝试访问内容,直到不再有吊销,或者进程因某种原因而停止。

编程指南