Compartilhar via


Função DrmAddContentHandlers (drmk.h)

A função DrmAddContentHandlers 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.

Valor de retorno

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

Observações

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 função DrmAddContentHandlers em vez disso.

O paHandlers matriz 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 no paHandlers matriz 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 de funções e interfaces do DRM.

Requisitos

Requisito Valor
da Plataforma de Destino Universal
cabeçalho drmk.h (inclua Drmk.h)
biblioteca Drmk.lib
IRQL PASSIVE_LEVEL

Consulte também

DrmForwardContentToDeviceObject

DrmForwardContentToInterface

IDrmPort2::AddContentHandlers

do IoCallDriver

pcAddContentHandlers