Функция 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 (include Drmk.h)
библиотеки Drmk.lib
IRQL PASSIVE_LEVEL

См. также

DrmForwardContentToDeviceObject

DrmForwardContentToInterface

IDrmPort2::AddContentHandlers

IoCallDriver

PcAddContentHandlers