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


Метод IDrmPort::CreateContentMixed (portcls.h)

Метод CreateContentMixed вычисляет права на содержимое DRM для составного потока, содержащего смешанное содержимое из некоторого количества аудиопотоков KS. Обратите внимание, что этот метод идентичен функции DrmCreateContentMixed, а ее определения параметров и возвращаемое значение также идентичны.

Синтаксис

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

Параметры

paContentId

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

cContentId

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

pMixedContentId

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

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

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

Замечания

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

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

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

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

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

DrmCreateContentMixed выполняет ту же функцию, что и PcCreateContentMixed и IDrmPort::CreateContentMixed.

Требования

Требование Ценность
заголовка portcls.h

См. также

IDrmPort