Fonction DrmForwardContentToInterface (drmk.h)
La DrmForwardContentToInterface
fonction accepte un pointeur vers l’interface COM d’un objet vers lequel l’appelant a l’intention de transférer du contenu protégé. La fonction authentifie l’objet et envoie l’objet l’ID de contenu et les droits DRM que le système a attribués au contenu protégé.
Syntaxe
NTSTATUS DrmForwardContentToInterface(
[in] ULONG ContentId,
[in] PUNKNOWN pUnknown,
[in] ULONG NumMethods
);
Paramètres
[in] ContentId
Spécifie l’ID de contenu DRM. Ce paramètre identifie un flux audio KS protégé.
[in] pUnknown
Pointeur vers une interface COM qui reçoit directement les données de flux audio KS pour un filtre audio KS.
[in] NumMethods
Spécifie le nombre total de méthodes dans l’interface COM vers lesquelles pUnknown pointe, y compris toutes les méthodes de ses interfaces de base.
Valeur retournée
DrmForwardContentToInterface
retourne STATUS_SUCCESS si l’appel a réussi. Sinon, la méthode retourne un code d’erreur approprié. Le tableau suivant présente certains des codes status de retour possibles.
Code de retour | Description |
---|---|
|
Indique que le flux audio KS associé à pUnknown ne prend pas en charge les droits de contenu DRM attribués à ContentId. |
Remarques
Avant d’autoriser le flux de contenu protégé dans un chemin de données, le système vérifie que le chemin d’accès aux données est sécurisé. Pour ce faire, le système authentifie chaque module dans le chemin de données en commençant à l’amont fin du chemin de données et en se déplaçant en aval. Comme chaque module est authentifié, ce module fournit au système des informations sur le module suivant dans le chemin des données afin qu’il puisse également être authentifié. Pour être correctement authentifié, le fichier binaire d’un module doit être signé en tant que conforme DRM.
Si deux modules adjacents dans le chemin de données communiquent entre eux via l’interface COM du module en aval, le module amont appelle la DrmForwardContentToInterface
fonction pour fournir au système un pointeur vers l’interface COM. (Si les deux modules communiquent via la fonction IoCallDriver ou les gestionnaires de contenu du module en aval, le module amont appelle DrmForwardContentToDeviceObject ou DrmAddContentHandlers à la place.)
DrmForwardContentToInterface
authentifie le module qui implémente les méthodes dans l’interface COM pointée par pUnknown. (Si les méthodes sont distribuées entre plusieurs modules, la fonction authentifie tous ces modules.) Cette interface définie par le fournisseur doit être comprise à la fois par le module qui appelle l’interface et par le module qui implémente l’interface. DrmForwardContentToInterface
ne fait aucune hypothèse concernant cette interface, sauf qu’elle est dérivée de IUnknown.
Si DrmForwardContentToInterface
l’authentification du pilote ou de la bibliothèque réussit, elle effectue les opérations suivantes :
-
Interroge l’interface pUnknown pour son interface IDrmAudioStream . Notez que bien que le
DrmForwardContentToInterface
authentifie toutes les méthodes de l’interface pUnknown , il n’appelle aucune méthode dans l’interface pUnknown autre que les méthodes IUnknown de base. -
Appelle IDrmAudioStream ::SetContentId pour définir l’ID de contenu DRM et les droits de contenu DRM sur le flux audio. Avant de retourner,
DrmForwardContentToInterface
libère l’interface IDrmAudioStream .
DrmForwardContentToInterface
exécute la même fonction que PcForwardContentToInterface et IDrmPort ::ForwardContentToInterface. Pour plus d’informations, consultez Fonctions et interfaces DRM.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Universal |
En-tête | drmk.h (inclure Drmk.h) |
Bibliothèque | Drmk.lib |
IRQL | PASSIVE_LEVEL |
Voir aussi
DrmForwardContentToDeviceObject
IDrmAudioStream ::SetContentId