Share via


Função DrmAddContentHandlers (drmk.h)

A DrmAddContentHandlers função fornece ao sistema uma lista de funções que lidam com conteúdo protegido.

Sintaxe

NTSTATUS DrmAddContentHandlers(
  [in] ULONG ContentId,
  [in] PVOID *paHandlers,
  [in] ULONG NumHandlers
);

Parâmetros

[in] ContentId

Especifica a ID de conteúdo drm. Esse parâmetro identifica um fluxo de áudio KS protegido.

[in] paHandlers

Ponteiro para uma matriz de ponteiros de função. Cada elemento de matriz aponta para um manipulador de conteúdo.

[in] NumHandlers

Especifica o número de ponteiros de função na matriz paHandlers .

Retornar valor

DrmAddContentHandlers retornará STATUS_SUCCESS se a chamada tiver sido bem-sucedida. Caso contrário, ele retornará um código de erro apropriado.

Comentários

Antes de permitir que o conteúdo protegido flua por um caminho de dados, o sistema verifica se o caminho de dados é seguro. Para fazer isso, o sistema autentica cada módulo no caminho de dados começando no final upstream do caminho de dados e movendo-se para baixo. À medida que cada módulo é autenticado, esse módulo fornece ao sistema informações sobre o próximo módulo no caminho de dados para que ele também possa ser autenticado. Para ser autenticado com êxito, o arquivo binário de um módulo deve ser assinado como compatível com DRM.

Se dois módulos adjacentes se comunicarem entre si por meio da função IoCallDriver ou da interface COM do módulo downstream, o módulo upstream chamará a função DrmForwardContentToInterface ou DrmForwardContentToDeviceObject, respectivamente, para fornecer ao sistema informações sobre o módulo downstream. No entanto, se os dois módulos usarem qualquer outro tipo de interface para se comunicar, o módulo upstream chamará a DrmAddContentHandlers função.

A matriz paHandlers contém ponteiros de função para pontos de entrada no módulo downstream. DrmAddContentHandlers autentica o módulo que implementa essas funções. (Se os pontos de entrada forem distribuídos entre vários módulos, a função autentica todos esses módulos.) As funções definidas pelo fornecedor nessa matriz compõem uma interface que é compreendida pelo módulo que chama as funções e o módulo que implementa as funções. DrmAddContentHandlers não chama diretamente nenhuma dessas funções.

O módulo upstream pode passar a ID de conteúdo e os direitos de conteúdo para o módulo downstream usando uma das funções na matriz paHandlers para essa finalidade. O módulo downstream precisa da ID de conteúdo para aconselhar o sistema de todos os módulos aos quais ele envia o conteúdo protegido.

DrmAddContentHandlers executa a mesma função que PcAddContentHandlers e IDrmPort2::AddContentHandlers. Para obter mais informações, consulte Funções e interfaces drm.

Requisitos

Requisito Valor
Plataforma de Destino Universal
Cabeçalho drmk.h (inclua Drmk.h)
Biblioteca Drmk.lib
IRQL PASSIVE_LEVEL

Confira também

DrmForwardContentToDeviceObject

DrmForwardContentToInterface

IDrmPort2::AddContentHandlers

IoCallDriver

PcAddContentHandlers