Funzione DrmForwardContentToInterface (drmk.h)
La funzione DrmForwardContentToInterface
accetta un puntatore all'interfaccia COM di un oggetto a cui il chiamante intende inoltrare contenuto protetto. La funzione autentica l'oggetto e invia all'oggetto l'ID contenuto e i diritti DRM assegnati dal sistema al contenuto protetto.
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 avuto esito positivo. In caso contrario, il metodo restituisce un codice di errore appropriato. La tabella seguente illustra alcuni dei possibili codici di stato restituiti.
Codice restituito | Descrizione |
---|---|
|
Indica che il flusso audio KS associato a pUnknown non supporta i diritti di contenuto DRM assegnati a ContentId. |
Osservazioni
Prima di consentire il flusso del contenuto protetto attraverso un percorso dati, il sistema verifica che il percorso dati sia sicuro. A tale scopo, il sistema esegue l'autenticazione di ogni modulo nel percorso dati a partire dalla fine upstream del percorso dati e lo spostamento a valle. Quando ogni modulo viene autenticato, tale modulo fornisce le informazioni di sistema sul modulo successivo nel percorso dati in modo che possa anche essere autenticato. Per l'autenticazione corretta, 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 DrmForwardContentToInterface
per fornire al sistema un puntatore all'interfaccia COM. Se i due moduli comunicano tramite la funzione IoCallDriver o i gestori di contenuto del modulo downstream, il modulo upstream chiama DrmForwardContentToDeviceObject o DrmAddContentHandlers.
DrmForwardContentToInterface
autentica il modulo che implementa i metodi nell'interfaccia COM a cui punta pUnknown. Se i metodi vengono distribuiti tra più 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 non sia derivata da IUnknown.
Se DrmForwardContentToInterface
ha esito positivo nell'autenticazione del driver o della libreria, esegue le operazioni seguenti:
-
Esegue una query sull'interfaccia pUnknown per l'interfaccia IDrmAudioStream. Si noti che anche se il
DrmForwardContentToInterface
autentica tutti i metodi nell'interfaccia pUnknown, non chiama metodi nell'interfaccia pUnknown diverso dai metodi di base IUnknown. -
Chiama IDrmAudioStream::SetContentId per impostare l'ID contenuto DRM e i diritti di contenuto DRM nel flusso audio. Prima di tornare,
DrmForwardContentToInterface
rilascia l'interfaccia IDrmAudioStream.
DrmForwardContentToInterface
esegue la stessa funzione di PcForwardContentToInterface e IDrmPort::ForwardContentToInterface. Per altre informazioni, vedere funzioni DRM e interfacce.
Fabbisogno
Requisito | Valore |
---|---|
piattaforma di destinazione | Universale |
intestazione | drmk.h (include Drmk.h) |
libreria | Drmk.lib |
IRQL | PASSIVE_LEVEL |
Vedere anche
DrmForwardContentToDeviceObject