Partager via


Exécution de l’individualisation DRM

[La fonctionnalité associée à cette page, le Kit de développement logiciel (SDK) Windows Media Format 11, est une fonctionnalité héritée. Il a été remplacé par le lecteur source et l’enregistreurrécepteur. Le lecteur source et l’enregistreur récepteur ont été optimisés pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise le lecteur source et l’enregistreur récepteur au lieu du Kit de développement logiciel (SDK) Windows Media Format 11, lorsque cela est possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]

L’individualisation est le processus qui consiste à mettre à jour le composant DRM sur l’ordinateur client, à le chiffrer et à le rendre unique. Lorsqu’un ordinateur est individualisé, le composant DRM est lié à l’ordinateur et ne peut pas décoder du contenu sur un autre ordinateur. Les API étendues du client DRM Windows Media prennent en charge l’individualisation du composant DRM sur les ordinateurs clients.

L’individualisation est effectuée en appelant la méthode IWMDRMSecurity::P erformSecurityUpdate . Vous pouvez appeler PerformSecurityUpdate pour qu’il soit individualisé uniquement si la version sur le serveur est plus récente que celle installée sur l’ordinateur client, ou vous pouvez forcer l’individualisation sans tenir compte des versions de sécurité relatives. L’indicateur pour l’individualisation en fonction des besoins est WMDRM_SECURITY_PERFORM_INDIV. L’indicateur d’individualisation forcée est WMDRM_SECURITY_PERFORM_FORCE_INDIV.

PerformSecurityUpdate est un appel asynchrone. Il retourne rapidement, puis génère des événements pour fournir status informations sur le processus d’individualisation. La majorité des événements générés sont des événements MEWMDRMIndividualizationProgress , et chacun a une interface IWMDRMIndividualizationStatus associée. Pour obtenir l’interface status, vous devez appeler IMFMediaEvent::GetValue pour récupérer un pointeur IUnknown qui se trouve sur le même objet, puis l’interroger pour IWMDRMIndividualizationStatus.

Vous pouvez obtenir des données pour une structure WM_INDIVIDUALIZE_STATUS en appelant IWMDRMIndividualizeStatus::GetStatus. Chaque événement généré a son propre objet avec status. Vous devez donc effectuer le processus d’obtention de la valeur de l’événement et d’interrogation de l’interface status à chaque fois.

Selon la taille du téléchargement, il peut y avoir des dizaines ou des centaines d’événements MEWMDRMIndividualizationProgress . Une fois le processus d’individualisation terminé, un événement MEWMDRMIndividualizationCompleted est généré.

Une fois l’individualisation terminée, les seuls objets existants qui reflètent le nouvel état individualisé sont ceux qui héritent d’IWMDRMSecurity. Tous les autres objets existants ne seront pas mis à jour. Vous devez libérer et recréer tous les autres objets afin qu’ils reflètent le nouvel état individualisé.

Exemple d’individualisation DRM

Guide de programmation

Utilisation du modèle d’événement Media Foundation

Meilleures pratiques d’individualisation de la gestion des droits numériques windows Media