处理受保护的内容

如果要构建的应用程序或服务提供商将使用受 Windows Media 数字版权管理 (DRM) 保护的内容,则必须具有 Microsoft 颁发的密钥/证书对。 若要了解从何处获取此证书,请参阅 开发工具。 如果不打算处理受保护的内容,可以在名为 key.c 的文件中使用此 SDK 提供的虚拟密钥和证书。

对于受 DRM 技术保护的任何文件,Windows Media 设备管理器要求存在安全的内容提供程序, (SCP) 该文件格式。 Microsoft 为 WMA 和 WMV 文件提供 SCP 模块。 如果应用程序或服务提供商将处理另一种格式的受 DRM 保护的内容,则必须提供自己的 SCP 模块。 SCP 模块是实现 安全内容提供程序的所有接口的 COM 对象。

应用程序可以将受 DRM 保护的内容发送到基于 Windows Media DRM 10 for Portable Devices 或 Portable Device DRM (PDDRM) 生成的设备。 但是,只能为基于 PDDRM 生成的设备创建服务提供商;不能为基于 Windows Media DRM 10 for Portable Devices 构建的设备创建服务提供商。 这些后一种设备只能使用 Microsoft 提供的 MTP 服务提供商。

基于 PDDRM 构建的设备只能支持购买内容的许可证。 具有时间过期条件的许可证仅受基于 Windows Media DRM 10 for Portable Devices 构建的设备的支持,这些设备具有特殊要求,例如安全时钟和个性化。 Windows Media DRM 10 for Portable Devices SDK 提供有关支持版本 10 技术的设备要求的详细信息。

在将 DRM 内容发送到设备之前,应用程序应验证以下几项操作:

  • 设备支持 DRM 技术。
  • 它支持哪个版本的 DRM 技术 (版本 10 或更早版本) 。
  • 如果设备是基于版本 10 构建的,则其所有组件都是最新的 (,例如安全时钟和任何个性化要求) 。

所有用于回答这些问题的方法调用均由客户端进行,并由 Windows Media 设备管理器 和安全内容提供程序组件处理;服务提供商不处理其中任何调用。

如果设备不支持适用于可移植设备的 Windows Media DRM 10,它可能仍能够使用受保护的内容 (,具体取决于内容许可证和设备设计) ,但发送给它的任何内容都将具有具有有限权限 (的简化使用许可证,例如,无时间过期) 。

注意

在附加了调试器的情况下处理受 DRM 保护的文件时,许多 Windows Media 设备管理器文件传输或权限请求方法通常会失败 (,并) 一个神秘的 HRESULT 值。 因此,必须使用其他方法来调试代码,例如将输出记录到 Windows 窗体或日志文件。 有关日志记录选项的详细信息,请参阅 启用日志记录。 如果对受保护的内容运行调试器,方法将返回 DRM 部分错误代码中列出的 错误代码之一,或者可能返回未知的错误代码。 如果在受保护内容或方法上运行调试器时收到神秘 的 HRESULT 值,则可能是 DRM 保护的原因。

 

编程指南