Метод 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, фильтр должен вызвать DrmDevicContent, чтобы удалить идентификатор содержимого. Однако перед удалением старого идентификатора содержимого звуковой фильтр KS должен успешно перенаправить новый идентификатор содержимого во все потоки, в которые он ранее перенаправил старый идентификатор содержимого. Аудиофильтр KS пересылает идентификатор содержимого, вызывая функцию DrmForwardContentToXxx.

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

Требования

Требование Значение
Заголовок portcls.h

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

IDrmPort