Fonction DrmAddContentHandlers (drmk.h)

La DrmAddContentHandlers fonction fournit au système une liste de fonctions qui gèrent le contenu protégé.

Syntaxe

NTSTATUS DrmAddContentHandlers(
  [in] ULONG ContentId,
  [in] PVOID *paHandlers,
  [in] ULONG NumHandlers
);

Paramètres

[in] ContentId

Spécifie l’ID de contenu DRM. Ce paramètre identifie un flux audio KS protégé.

[in] paHandlers

Pointeur vers un tableau de pointeurs de fonction. Chaque élément de tableau pointe vers un gestionnaire de contenu.

[in] NumHandlers

Spécifie le nombre de pointeurs de fonction dans le tableau paHandlers .

Valeur retournée

DrmAddContentHandlers retourne STATUS_SUCCESS si l’appel a réussi. Sinon, il retourne un code d’erreur approprié.

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 communiquent entre eux via la fonction IoCallDriver ou l’interface COM du module en aval, le module amont appelle respectivement la fonction DrmForwardContentToInterface ou DrmForwardContentToDeviceObject pour fournir au système des informations sur le module en aval. Toutefois, si les deux modules utilisent un autre type d’interface pour communiquer, le module amont appelle la fonction à la DrmAddContentHandlers place.

Le tableau paHandlers contient des pointeurs de fonction vers des points d’entrée dans le module en aval. DrmAddContentHandlers authentifie le module qui implémente ces fonctions. (Si les points d’entrée sont distribués entre plusieurs modules, la fonction authentifie tous ces modules.) Les fonctions définies par le fournisseur dans ce tableau constituent une interface comprise à la fois par le module qui appelle les fonctions et par le module qui implémente les fonctions. DrmAddContentHandlers n’appelle pas directement l’une de ces fonctions.

Le module amont peut passer l’ID de contenu et les droits de contenu au module en aval à l’aide de l’une des fonctions du tableau paHandlers à cet effet. Le module en aval a besoin de l’ID de contenu pour informer le système de tous les modules auxquels il envoie le contenu protégé.

DrmAddContentHandlers exécute la même fonction que PcAddContentHandlers et IDrmPort2 ::AddContentHandlers. 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

DrmForwardContentToInterface

IDrmPort2 ::AddContentHandlers

IoCallDriver

PcAddContentHandlers