DRM 要求

本节介绍了一些要求,音频微型端口驱动程序必须满足这些要求,才能通过 Microsoft Windows 硬件质量实验室 (WHQL) 的 DRM 合规性测试。 这些要求特别适用于 WaveCyclic 和 WavePci 音频微型端口驱动程序,这些驱动程序是端口类库 (Portcls.sys) 中与 WavePci 和 WaveCyclic 端口驱动程序对应的特定于硬件的驱动程序。 DRM 合规性测试目前不适用于 USB 驱动程序。

在 Windows XP 及更高版本中,只有受信任的音频驱动程序才能播放受 DRM 保护的内容。 Windows 通过存储在驱动程序的 .cat(目录)文件中的 DRM 特定数字签名来标识受信任的驱动程序。 Microsoft 仅为在受 WHQL 管理的硬件兼容性测试中通过了 DRM 合规性测试的驱动程序颁发 DRM 签名。

但是,对于 Windows XP 和更高版本,DRM 合规性测试是 WHQL 测试的必需部分。 驱动程序必须通过 DRM 合规性测试才有资格获得“专为 Windows XP 而设计”徽标。

DRM 合规性测试要求受信任的音频驱动程序执行以下操作:

  • 音频微型端口驱动程序必须在其流对象中实现 IDrmAudioStream 接口,如果它查询了 IID_IDrmAudioStream,则必须返回 IDrmAudioStream 类型的对象。

  • 请求复制保护 (DRMRIGHTS.CopyProtect = TRUE) 时,音频驱动程序必须禁用捕获当前正在播放的流的功能。 这意味着驱动程序不得将不受保护的数字内容保存到任何形式的非易失性存储,其中包括硬盘、EEPROM、内存卡和内存条。 此外,驱动程序必须在输出 D/A 转换器上禁用捕获多路复用器,并以其他方式阻止数字内容的环回。

  • 当系统要求音频驱动程序在设备上禁用数字音频输出 (DRMRIGHTS.DigitalOutputDisable = TRUE) 时,它必须禁用所有能够根据标准互连方案通过标准接口传输内容的数字音频输出。 数字输出包括但不限于 S/PDIF、IEEE 1394、并行、串行、调制解调器和网络端口。 (此需求目前不适用于 USB。)

  • 处理安全内容时,音频驱动程序绝不能将不受信任的驱动程序附加到其堆栈。 换句话说,音频驱动程序只能依赖于其他还包含 DRM 签名的组件。 驱动程序绝不能协助将音频数据传输到任何没有 DRM 签名的组件。 具体而言,如果驱动程序将数字内容传递给另一个组件,该驱动程序必须使用内核中的 DRM API 将这一事实告知 DRMK 系统驱动程序

除了通过 DRM 合规性测试外,音频设备和驱动程序还不得允许用户选择可破坏或颠覆内核中 DRM 组件的操作模式。 具体而言,驱动程序不得提供注册表设置、用户控制面板或其他禁用 DRM 函数的方法。