Partager via


DrmAddContentHandlers, fonction (drmk.h)

La fonction DrmAddContentHandlers 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 de retour

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

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 communiquent entre eux via la fonction IoCallDriver ou l’interface COM du module en aval, le module en amont appelle le DrmForwardContentToInterface ou DrmForwardContentToDeviceObject fonction, respectivement, 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 en amont appelle la fonction DrmAddContentHandlers à la place.

Les paHandlers tableau contiennent 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 par le module qui appelle les fonctions et le module qui implémente les fonctions. DrmAddContentHandlers n’appelle pas directement ces fonctions.

Le module en amont peut transmettre à la fois 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 conseiller le système de tous les modules auxquels il envoie le contenu protégé.

DrmAddContentHandlers effectue la même fonction que pcAddContentHandlers et IDrmPort2 ::AddContentHandlers. 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

DrmForwardContentToInterface

IDrmPort2 ::AddContentHandlers

IoCallDriver

pcAddContentHandlers