Функция DrmAddContentHandlers (drmk.h)
Функция DrmAddContentHandlers
предоставляет системе список функций, которые обрабатывают защищенное содержимое.
Синтаксис
NTSTATUS DrmAddContentHandlers(
[in] ULONG ContentId,
[in] PVOID *paHandlers,
[in] ULONG NumHandlers
);
Параметры
[in] ContentId
Указывает идентификатор содержимого DRM. Этот параметр определяет защищенный аудиопоток KS.
[in] paHandlers
Указатель на массив указателей функций. Каждый элемент массива указывает на обработчик содержимого.
[in] NumHandlers
Указывает количество указателей функций в массиве paHandlers .
Возвращаемое значение
DrmAddContentHandlers
возвращает STATUS_SUCCESS, если вызов был выполнен успешно. В противном случае возвращается соответствующий код ошибки.
Комментарии
Прежде чем разрешить защищенному содержимому проходить через путь к данным, система проверяет, что путь к данным является безопасным. Для этого система проверяет подлинность каждого модуля в пути к данным, начиная с вышестоящий конца пути к данным и перемещаясь вниз. По мере проверки подлинности каждого модуля этот модуль предоставляет системным сведения о следующем модуле в пути к данным, чтобы его также можно было пройти проверку подлинности. Для успешной проверки подлинности двоичный файл модуля должен быть подписан как совместимый с DRM.
Если два смежных модуля взаимодействуют друг с другом с помощью функции IoCallDriver или COM-интерфейса подчиненного модуля, модуль вышестоящий вызывает функцию DrmForwardContentToInterface или DrmForwardContentToDeviceObject соответственно, чтобы предоставить системе сведения о подчиненном модуле. Однако если два модуля используют какой-либо другой тип интерфейса для обмена данными, модуль вышестоящий вызывает вместо этого функциюDrmAddContentHandlers
.
Массив paHandlers содержит указатели функций на точки входа в нижестоящем модуле. DrmAddContentHandlers
проверяет подлинность модуля, реализующего эти функции. (Если точки входа распределены между несколькими модулями, функция проверяет подлинность всех этих модулей.) Определяемые поставщиком функции в этом массиве составляют интерфейс, понятный как модулю, который вызывает функции, так и модулю, реализующем функции. DrmAddContentHandlers
не вызывает напрямую ни одну из этих функций.
Модуль вышестоящий может передать идентификатор содержимого и права на содержимое в подчиненный модуль, используя для этой цели одну из функций в массиве paHandlers. Нижестоящему модулю требуется идентификатор содержимого, чтобы сообщить системе о любых модулях, в которые отправляется защищенное содержимое.
DrmAddContentHandlers выполняет ту же функцию, что и PcAddContentHandlers и IDrmPort2::AddContentHandlers. Дополнительные сведения см. в разделе Функции и интерфейсы DRM.
Требования
Требование | Значение |
---|---|
Целевая платформа | Универсальное |
Верхняя часть | drmk.h (включая Drmk.h) |
Библиотека | Drmk.lib |
IRQL | PASSIVE_LEVEL |