IDrmPort::CreateContentMixed 方法 (portcls.h)

CreateContentMixed 方法计算包含来自一定数量的 KS 音频流的混合内容的复合流的 DRM 内容权限。 请注意,此方法在操作上与 DrmCreateContentMixed 函数相同,其参数定义和返回值也相同。

语法

NTSTATUS CreateContentMixed(
  PULONG paContentId,
  ULONG  cContentId,
  PULONG pMixedContentId
);

参数

paContentId

指向 DRM 内容 ID 数组的指针。 每个数组元素的类型为 ULONG,并且包含一个表示受保护的 KS 音频流的内容 ID。 如果 cContentId 为零,则 paContentID 可以为 NULL。 内容 ID 为零是一个特殊值,表示具有默认 DRM 内容权限的音频流 (查看DEFINE_DRMRIGHTS_DEFAULT) 。

cContentId

指定 paContentId 数组中 DRM 内容 ID 的数目。 数组可以保存零个或多个内容 ID。

pMixedContentId

复合内容 ID 的输出指针。 此参数指向调用方分配的 ULONG 变量,函数在该变量中写入复合 KS 音频流的新内容 ID。 如果 cContentId 为零,则函数会将默认 DRM 内容权限分配给新内容 ID。

返回值

如果调用成功,此方法返回 NTSTATUS - STATUS_SUCCESS。 否则,它将返回相应的错误代码。

注解

KS 音频筛选器调用 DrmCreateContentMixed 函数以获取复合流的 DRM 内容 ID。 筛选器通过将内容 ID 列在 paContentId 数组中的 KS 音频流混合在一起来生成此流。 给定混音器输入处流的内容 ID 列表,函数计算复合流的内容权限,并将新内容 ID 分配给该流。

如果调用方未指定任何内容 ID (即,如果 cContentId) 为零,则函数会将默认内容权限分配给它创建的内容 ID 以标识复合流。

从 DrmCreateContentMixed 获取内容 ID 后,调用方可以通过调用 DrmGetContentRights 获取分配给内容 ID 的内容权限。

更改复合音频流的任何组件的内容权限后,混合流的 KS 音频筛选器必须调用 DrmCreateContentMixed 以获取复合音频流的新内容 ID。 DrmCreateContentMixed 确定分配给 paContentId 数组中指定的单个内容 ID 的内容权限中限制性最强的内容权限,并将这些权限分配给新内容 ID。

KS 音频筛选器使用它使用 DrmCreateContentMixed 创建的内容 ID 后,筛选器必须调用 DrmDestroyContent 以删除内容 ID。 但是,在删除旧内容 ID 之前,KS 音频筛选器必须先成功将新内容 ID 转发到以前将旧内容 ID 转发到的所有流。 KS 音频筛选器通过调用 DrmForwardContentToXxx 函数转发内容 ID。

DrmCreateContentMixed 执行与 PcCreateContentMixed 和 IDrmPort::CreateContentMixed 相同的功能。

要求

要求
Header portcls.h

另请参阅

IDrmPort