获取所需的 DRM 库

[与此页面关联的功能 Windows Media Format 11 SDK 是一项旧功能。 它已被源读取器和接收器编写器取代。 源读取器和接收器编写器已针对Windows 10和Windows 11进行了优化。 如果可能,Microsoft 强烈建议新代码使用源读取器和接收器编写器,而不是 Windows Media 格式 11 SDK。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

若要创建或播放受 DRM 保护的数字媒体文件,应用程序必须链接到 Microsoft 以二进制格式提供的静态库。 此库有时称为存根库或“stublib”,它唯一标识应用程序。

在本文档中,DRM 库称为“WMStubDRM.lib”。 收到的库的名称将包含一个标识号。 若要获取此库,必须与 Microsoft 签署许可协议。 根据请求评估许可证还是生产许可证,协议条款可能会有所不同。 有关 DRM 许可过程的详细信息,请参阅 Microsoft 网站上的 Windows Media 许可表单。

收到的库具有 DRM 安全级别,具体取决于你签订的许可协议类型。 DRM 许可证可以限制具有低于指定安全级别的 DRM 组件的应用程序访问文件内容。 此安全级别与 DRM 个性化级别不同,也不与输出保护级别 (OPL) 的任何数值相关。 下表显示了不同播放器和便携式设备的 DRM 安全级别示例。

安全级别 播放器和便携式设备 示例
150 不支持 Windows Media DRM 的设备。 将内容传输到此类设备时,将删除 DRM 保护。 支持基于 Windows 媒体的内容但不受保护内容的设备
1,000 基于 Windows Media Format 9.5 SDK 或更早版本的播放器应用程序,这些应用程序不符合基于 Windows Media 可移植设备 DRM v1 的级别 2000.Devices 的其他要求。
基于 Windows CE 4.2 及更高版本的设备。
Windows 媒体播放器 6.4,Windows 媒体播放器支持 Windows Media Portable Device DRM v1 的 7Portable 媒体设备。
2,000 基于 Windows Media Format 9 系列 SDK 或更高版本且遵循一组内容保护准则的播放器应用程序比级别为 1000 的应用程序。基于适用于便携式设备的 Windows Media DRM 10 的设备。
基于适用于网络设备的 Windows Media DRM 10 的设备。
Windows 媒体播放器 9 系列及更高版本支持适用于便携式设备的 Windows Media DRM 10 的可移植媒体设备
基于 Windows Mobile 的可移植 Media Center 设备

生成和调试信息

链接到 WMStubDRM.lib 时,请勿链接到 wmvcore.lib。 如果应用程序链接到这两个库,DRM 组件将无法正常工作。

在调试器中运行时,DRM 组件中的用户断点将阻止调试和发布版本的应用程序访问受保护的内容。 若要对应用程序中与 DRM 相关的函数进行故障排除,必须编写自己的跟踪例程,用于将 HRESULT 值等信息保存到某个位置(如日志文件)。

如果尝试在安装了调试版本的 SDK 位的系统上运行应用程序的发布版本 (或) ,则播放 DRM 版本 7 内容时会遇到堆错误。 请务必通过调试 SDK 位运行调试应用程序,并通过发布位发布应用程序。 如果运行具有个性化 DRM 组件的 SDK 调试版本,则会出现相同的问题 (该组件始终是发布版本) 。

笔记 此 SDK 的基于 x64 的版本不支持 DRM。

与 Windows Media Format 9.5 SDK 关联的 WMStubDRM.lib 文件只能与 Microsoft Visual Studio .NET 2003 的组件一起使用。 如果使用旧版存根库,则其使用没有新的限制。

启用 DRM 支持