Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Функция DrmForwardContentToInterface принимает указатель на COM-интерфейс объекта, которому вызывающий объект намерен перенаправить защищенное содержимое. Функция проверяет подлинность объекта и отправляет объекту идентификатор содержимого и права DRM, назначенные системе защищенному содержимому.
Синтаксис
NTSTATUS DrmForwardContentToInterface(
[in] ULONG ContentId,
[in] PUNKNOWN pUnknown,
[in] ULONG NumMethods
);
Параметры
[in] ContentId
Указывает идентификатор содержимого DRM. Этот параметр определяет защищенный аудиопоток KS.
[in] pUnknown
Указатель на COM-интерфейс, который напрямую получает данные аудиопотока KS для аудиофильтра KS.
[in] NumMethods
Указывает общее количество методов в интерфейсе COM, на которые точки pUnknown, включая все методы в базовых интерфейсах.
Возвращаемое значение
DrmForwardContentToInterface возвращает STATUS_SUCCESS, если вызов выполнен успешно. В противном случае метод возвращает соответствующий код ошибки. В следующей таблице показаны некоторые возможные коды состояния возврата.
| Код возврата | Описание |
|---|---|
|
Указывает, что аудиопоток KS, связанный с pUnknown , не поддерживает права на содержимое DRM, назначенные ContentId. |
Замечания
Прежде чем разрешить защищенный контент проходить через путь к данным, система проверяет, является ли путь к данным безопасным. Для этого система проверяет подлинность каждого модуля в пути к данным, начиная с вышестоящего конца пути к данным и перемещения вниз. По мере проверки подлинности каждого модуля этот модуль предоставляет системные сведения о следующем модуле в пути к данным, чтобы его также можно было пройти проверку подлинности. Чтобы успешно пройти проверку подлинности, двоичный файл модуля должен быть подписан как совместимый с DRM.
Если два смежных модуля в пути к данным взаимодействуют друг с другом с помощью com-интерфейса нижестоящего модуля, вышестоящий модуль вызывает DrmForwardContentToInterface функцию, чтобы предоставить системе указатель на COM-интерфейс. (Если два модуля взаимодействуют через функцию IoCallDriver или обработчики содержимого нижестоящего модуля, вышестоящий модуль вызывает DrmForwardContentToDeviceObject или DrmAddContentHandlers .
DrmForwardContentToInterface проверяет подлинность модуля, реализующего методы в com-интерфейсе, на который указывает pUnknown. (Если методы распределены между несколькими модулями, функция выполняет проверку подлинности всех этих модулей.) Этот определяемый поставщиком интерфейс должен быть понят как модулем, который вызывает интерфейс, так и модуль, реализующий интерфейс.
DrmForwardContentToInterface не предполагает, что этот интерфейс отличается от того, что он является производным от IUnknown.
Если DrmForwardContentToInterface проверка подлинности драйвера или библиотеки выполнена успешно, выполняется следующее:
-
Запрашивает интерфейс pUnknown для своего интерфейса IDrmAudioStream . Обратите внимание, что хотя проверка
DrmForwardContentToInterfaceподлинности всех методов в интерфейсе pUnknown не вызывает никаких методов в интерфейсе pUnknown , отличных от базовых методов IUnknown . -
Вызывает IDrmAudioStream::SetContentId , чтобы задать идентификатор содержимого DRM и права на содержимое DRM в звуковом потоке. Перед возвратом
DrmForwardContentToInterfaceосвобождает интерфейс IDrmAudioStream .
DrmForwardContentToInterface выполняет ту же функцию, что и PcForwardContentToInterface и IDrmPort::ForwardContentToInterface. Дополнительные сведения см. в функций и интерфейсов DRM.
Требования
| Требование | Ценность |
|---|---|
| целевая платформа | универсальный |
| Заголовок | drmk.h (include Drmk.h) |
| Библиотека | Drmk.lib |
| IRQL | пассивный уровень |
См. также
DrmForwardContentToDeviceObject