Condividi tramite


Funzione DRMForwardContentToInterface (drmk.h)

La DrmForwardContentToInterface funzione accetta un puntatore all'interfaccia COM di un oggetto a cui il chiamante intende inoltrare contenuto protetto. La funzione autentica l'oggetto e invia l'oggetto i diritti CONTENT ID e DRM assegnati al contenuto protetto dal sistema.

Sintassi

NTSTATUS DrmForwardContentToInterface(
  [in] ULONG    ContentId,
  [in] PUNKNOWN pUnknown,
  [in] ULONG    NumMethods
);

Parametri

[in] ContentId

Specifica l'ID contenuto DRM. Questo parametro identifica un flusso audio KS protetto.

[in] pUnknown

Puntatore a un'interfaccia COM che riceve direttamente i dati del flusso audio KS per un filtro audio KS.

[in] NumMethods

Specifica il numero totale di metodi nell'interfaccia COM a cui pUnknown punta, inclusi tutti i metodi nelle interfacce di base.

Valore restituito

DrmForwardContentToInterface restituisce STATUS_SUCCESS se la chiamata ha esito positivo. In caso contrario, il metodo restituisce un codice di errore appropriato. La tabella seguente mostra alcuni dei possibili codici di stato restituiti.

Codice restituito Descrizione
STATUS_NOT_IMPLEMENTED
Indica che il flusso audio KS associato a pUnknown non supporta i diritti di contenuto DRM assegnati a ContentId.

Commenti

Prima di consentire il flusso del contenuto protetto attraverso un percorso dati, il sistema verifica che il percorso dei dati sia sicuro. A tale scopo, il sistema autentica ogni modulo nel percorso dati a partire dalla fine upstream del percorso dati e lo spostamento a valle. Poiché ogni modulo viene autenticato, tale modulo fornisce le informazioni di sistema sul modulo successivo nel percorso dati in modo che possa essere autenticato anche. Per essere autenticato correttamente, il file binario di un modulo deve essere firmato come conforme a DRM.

Se due moduli adiacenti nel percorso dati comunicano tra loro tramite l'interfaccia COM del modulo downstream, il modulo upstream chiama la funzione per fornire al DrmForwardContentToInterface sistema un puntatore all'interfaccia COM. Se i due moduli comunicano tramite la funzione IoCallDriver o i gestori del contenuto del modulo downstream, il modulo upstream chiama invece DRMForwardContentToDeviceObject o DrmAddContentHandlers .

DrmForwardContentToInterface autentica il modulo che implementa i metodi nell'interfaccia COM a cui fa riferimento pUnknown. Se i metodi vengono distribuiti tra diversi moduli, la funzione autentica tutti questi moduli. Questa interfaccia definita dal fornitore deve essere compresa sia dal modulo che chiama l'interfaccia che dal modulo che implementa l'interfaccia. DrmForwardContentToInterface non presuppone che questa interfaccia sia diversa da quella derivata da IUnknown.

Se DrmForwardContentToInterface ha esito positivo nell'autenticazione del driver o della libreria, esegue le operazioni seguenti:

  • Esegue query sull'interfaccia pUnknown per l'interfaccia IDrmAudioStream . Si noti che, anche se l'autenticazione DrmForwardContentToInterface di tutti i metodi nell'interfaccia pUnknown, non chiama alcun metodo nell'interfaccia pUnknown diverso dai metodi IUnknown di base.
  • Chiama IDrmAudioStream::SetContentId per impostare l'ID contenuto DRM e i diritti di contenuto DRM nel flusso audio. Prima di restituire, DrmForwardContentToInterface rilascia l'interfaccia IDrmAudioStream .
Il parametro pUnknown segue le convenzioni di conteggio dei riferimenti per gli oggetti COM.

DrmForwardContentToInterface esegue la stessa funzione di PcForwardContentToInterface e IDrmPort::ForwardContentToInterface. Per altre informazioni, vedere Funzioni e interfacce DRM.

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Intestazione drmk.h (include Drmk.h)
Libreria Drmk.lib
IRQL PASSIVE_LEVEL

Vedi anche

DrmAddContentHandlers

DrmForwardContentToDeviceObject

IDrmAudioStream

IDrmAudioStream::SetContentId

IDrmPort::ForwardContentToInterface

IoCallDriver

PcForwardContentToInterface