Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Функция 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 (include Drmk.h) |
| библиотеки | Drmk.lib |
| IRQL | PASSIVE_LEVEL |