Função DrmForwardContentToInterface (drmk.h)
A DrmForwardContentToInterface
função aceita um ponteiro para a interface COM de um objeto para o qual o chamador pretende encaminhar conteúdo protegido. A função autentica o objeto e envia ao objeto a ID de conteúdo e os direitos de DRM atribuídos pelo sistema ao conteúdo protegido.
Sintaxe
NTSTATUS DrmForwardContentToInterface(
[in] ULONG ContentId,
[in] PUNKNOWN pUnknown,
[in] ULONG NumMethods
);
Parâmetros
[in] ContentId
Especifica a ID de conteúdo drm. Esse parâmetro identifica um fluxo de áudio KS protegido.
[in] pUnknown
Ponteiro para uma interface COM que recebe diretamente dados de fluxo de áudio KS para um filtro de áudio KS.
[in] NumMethods
Especifica o número total de métodos na interface COM para o qual pUnknown aponta, incluindo todos os métodos em suas interfaces base.
Retornar valor
DrmForwardContentToInterface
retornará STATUS_SUCCESS se a chamada tiver sido bem-sucedida. Caso contrário, o método retorna um código de erro apropriado. A tabela a seguir mostra alguns dos possíveis códigos de retorno status.
Código de retorno | Descrição |
---|---|
|
Indica que o fluxo de áudio KS associado ao pUnknown não dá suporte aos direitos de conteúdo DRM atribuídos ao ContentId. |
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 no caminho de dados se comunicarem entre si por meio da interface COM do módulo downstream, o módulo upstream chamará a DrmForwardContentToInterface
função para fornecer ao sistema um ponteiro para a interface COM. (Se os dois módulos se comunicarem por meio da função IoCallDriver ou dos manipuladores de conteúdo do módulo downstream, o módulo upstream chamará DrmForwardContentToDeviceObject ou DrmAddContentHandlers em vez disso.)
DrmForwardContentToInterface
autentica o módulo que implementa os métodos na interface COM apontada por pUnknown. (Se os métodos forem distribuídos entre vários módulos, a função autentica todos esses módulos.) Essa interface definida pelo fornecedor deve ser compreendida pelo módulo que chama a interface e o módulo que implementa a interface. DrmForwardContentToInterface
não faz suposições sobre essa interface além de que ela é derivada de IUnknown.
Se DrmForwardContentToInterface
for bem-sucedido na autenticação do driver ou da biblioteca, ele fará o seguinte:
-
Consulta a interface pUnknown para sua interface IDrmAudioStream . Observe que, embora o
DrmForwardContentToInterface
autentique todos os métodos na interface pUnknown , ele não chama nenhum método na interface pUnknown diferente dos métodos IUnknown base. -
Chama IDrmAudioStream::SetContentId para definir a ID de conteúdo drm e os direitos de conteúdo DRM no fluxo de áudio. Antes de retornar,
DrmForwardContentToInterface
libera a interface IDrmAudioStream .
DrmForwardContentToInterface
executa a mesma função que PcForwardContentToInterface e IDrmPort::ForwardContentToInterface. 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