DrmForwardContentToInterface, fonction (drmk.h)
La fonction DrmForwardContentToInterface
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 aux droits DRM et ID de contenu attribués par le système 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 des 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 qui pUnknown pointe vers, y compris toutes les méthodes de ses interfaces de base.
Valeur de retour
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 d’état de retour possibles.
Retourner le code | Description |
---|---|
|
Indique que le flux audio KS associé à pUnknown ne prend pas en charge les droits de contenu DRM affectés à ContentId. |
Remarques
Avant d’autoriser le contenu protégé à circuler via 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 à partir de la fin en amont du chemin de données et se déplace en aval. À mesure que chaque module est authentifié, ce module fournit des informations système sur le module suivant dans le chemin de données afin qu’il puisse également être authentifié. Pour être authentifié avec succès, 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 en amont appelle la fonction DrmForwardContentToInterface
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 en amont appelle DrmForwardContentToDeviceObject ou DrmAddContentHandlers à la place.)
DrmForwardContentToInterface
authentifie le module qui implémente les méthodes de 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 par le module qui appelle l’interface et le module qui implémente l’interface.
DrmForwardContentToInterface
ne fait aucune hypothèse concernant cette interface autre que celle qui est dérivée de IUnknown.
Si DrmForwardContentToInterface
réussit à authentifier le pilote ou la bibliothèque, procédez comme suit :
-
Interroge l’interface pUnknown pour son interface IDrmAudioStream. Notez que même si la
DrmForwardContentToInterface
authentifie toutes les méthodes de l’interface pUnknown, elle n’appelle aucune méthode dans l’interface pUnknown autre que les méthodes de base IUnknown. -
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
effectue la même fonction que PcForwardContentToInterface et IDrmPort ::ForwardContentToInterface. Pour plus d’informations, consultez fonctions et interfaces DRM.
Exigences
Exigence | Valeur |
---|---|
plateforme cible | Universel |
d’en-tête | drmk.h (include Drmk.h) |
bibliothèque | Drmk.lib |
IRQL | PASSIVE_LEVEL |
Voir aussi
DrmForwardContentToDeviceObject
IDrmAudioStream ::SetContentId