Поделиться через


Функция DrmCreateContentMixed (drmk.h)

Функция DrmCreateContentMixed создает идентификатор содержимого DRM для идентификации аудиопотока KS, содержащего смешанное содержимое из нескольких потоков.

Синтаксис

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

Параметры

[in] paContentId

Указатель на массив идентификаторов содержимого DRM. Каждый элемент массива имеет тип ULONG и содержит идентификатор содержимого, представляющий защищенный аудиопоток KS. Если значение cContentId равно нулю, параметр paContentID может иметь значение NULL. Идентификатор содержимого, равный нулю, — это специальное значение, представляющее звуковой поток с правами на содержимое DRM по умолчанию (см . DEFINE_DRMRIGHTS_DEFAULT).

[in] cContentId

Указывает количество идентификаторов содержимого DRM в массиве paContentId . Массив может содержать ноль или более идентификаторов содержимого.

[out] pMixedContentId

Выходной указатель для составного идентификатора содержимого. Этот параметр указывает на выделенную вызывающей переменной ULONG, в которую функция записывает новый идентификатор содержимого для составного аудиопотока KS. Если cContentId равно нулю, функция назначает права содержимого DRM по умолчанию новому идентификатору содержимого.

Возвращаемое значение

DrmCreateContentMixed возвращает STATUS_SUCCESS, если вызов был выполнен успешно. В противном случае возвращается соответствующий код ошибки.

Комментарии

Аудиофильтр KS вызывает функцию DrmCreateContentMixed для получения идентификатора содержимого DRM для составного потока. Фильтр создает этот поток путем смешивания аудиопотоков KS, идентификаторы содержимого которых перечислены в массиве paContentId . Учитывая этот список идентификаторов содержимого для потоков на входных данных микшера, функция вычисляет права содержимого составного потока и назначает новый идентификатор содержимого этому потоку.

Если вызывающий объект не указывает идентификаторы содержимого (то есть, если cContentId равен нулю), функция назначает права содержимого по умолчанию идентификатору содержимого, создаваемому для идентификации составного потока.

Получив идентификатор содержимого из DrmCreateContentMixed, вызывающий объект может получить права на содержимое, назначенные идентификатору содержимого, вызвав DrmGetContentRights.

После изменения прав на содержимое любого из компонентов составного аудиопотока звуковой фильтр KS, который смешивает поток, должен вызвать для DrmCreateContentMixed получения нового идентификатора содержимого для составного аудиопотока. DrmCreateContentMixed определяет наиболее строгие права на содержимое, назначенные отдельным идентификаторам содержимого, указанным в массиве paContentId , и назначает эти права новому идентификатору содержимого.

После завершения аудиофильтра KS с использованием идентификатора содержимого, созданного с помощью DrmCreateContentMixed, фильтр должен вызвать DrmDescreenContent , чтобы удалить идентификатор содержимого. Однако перед удалением старого идентификатора содержимого звуковой фильтр KS должен успешно перенаправить новый идентификатор содержимого во все потоки, в которые он ранее пересылал старый идентификатор содержимого. Аудиофильтр KS пересылает идентификатор содержимого, вызывая функцию DrmForwardContentToXxx .

DrmCreateContentMixed выполняет ту же функцию, что и PcCreateContentMixed и IDrmPort::CreateContentMixed. Дополнительные сведения см. в разделе Функции и интерфейсы DRM.

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть drmk.h (включая Drmk.h)
Библиотека Drmk.lib
IRQL PASSIVE_LEVEL

См. также раздел

DEFINE_DRMRIGHTS_DEFAULT

DrmDeкислоумContent

DrmForwardContentToDeviceObject

DrmForwardContentToInterface

DrmGetContentRights

IDrmPort::CreateContentMixed

PcCreateContentMixed