DrmCreateContentMixed 函数 (drmk.h)

函数 DrmCreateContentMixed 创建一个 DRM 内容 ID,用于标识包含来自多个流的混合内容的 KS 音频流。

语法

NTSTATUS DrmCreateContentMixed(
  [in]  PULONG paContentId,
  [in]  ULONG  cContentId,
  [out] PULONG pMixedContentId
);

参数

[in] paContentId

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

[in] cContentId

指定 paContentId 数组中的 DRM 内容 ID 数。 数组可以包含零个或多个内容 ID。

[out] pMixedContentId

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

返回值

DrmCreateContentMixed 如果调用成功,则返回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 执行与 PcCreateContentMixedIDrmPort::CreateContentMixed 相同的函数。 有关详细信息,请参阅 DRM 函数和接口

要求

要求
目标平台 通用
标头 drmk.h (包括 Drmk.h)
Library Drmk.lib
IRQL PASSIVE_LEVEL

另请参阅

DEFINE_DRMRIGHTS_DEFAULT

DrmDestroyContent

DrmForwardContentToDeviceObject

DrmForwardContentToInterface

DrmGetContentRights

IDrmPort::CreateContentMixed

PcCreateContentMixed