Compartir a través de


Realización de la individualización de DRM

[La característica asociada a esta página, WINDOWS Media Format 11 SDK, es una característica heredada. Se ha reemplazado por lector de origen y escritor receptor. Lector de origen y escritor receptor se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use lector fuente y escritor receptor en lugar del SDK de Windows Media Format 11, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.

La individualización es el proceso de actualizar el componente DRM en el equipo cliente, cifrarlo y convertirlo en único. Cuando un equipo se individualiza, el componente DRM está vinculado al equipo y no podrá descodificar contenido en ningún otro equipo. Las API extendidas del cliente DRM de Windows Media proporcionan compatibilidad con la individualización del componente DRM en los equipos cliente.

La individualización se realiza mediante una llamada al método IWMDRMSecurity::P erformSecurityUpdate . Puede llamar a PerformSecurityUpdate para que individualice solo si la versión del servidor es más reciente que la instalada en el equipo cliente, o puede forzar la individualización sin tener en cuenta las versiones de seguridad relativas. La marca para la individualización según sea necesario es WMDRM_SECURITY_PERFORM_INDIV. La marca para la individualización forzada es WMDRM_SECURITY_PERFORM_FORCE_INDIV.

PerformSecurityUpdate es una llamada asincrónica. Se devolverá rápidamente y, a continuación, generará eventos para proporcionar información de estado sobre el proceso de individualización. La mayoría de los eventos generados serán eventos MEWMDRMIndividualizationProgress y cada uno tiene una interfaz IWMDRMIndividualizationStatus asociada. Para obtener la interfaz de estado, debe llamar a IMFMediaEvent::GetValue para recuperar un puntero IUnknown que se encuentra en el mismo objeto y, a continuación, consultarlo para IWMDRMIndividualizationStatus.

Puede obtener datos de una estructura de WM_INDIVIDUALIZE_STATUS llamando a IWMDRMIndividualizeStatus::GetStatus. Cada evento que se genera tiene su propio objeto con estado, por lo que debe pasar por el proceso de obtener el valor del evento y consultar la interfaz de estado cada vez.

Dependiendo del tamaño de la descarga, puede haber docenas o cientos de eventos MEWMDRMIndividualizationProgress . Cuando finaliza el proceso de individualización, se genera un evento MEWMDRMIndividualizationCompleted .

Cuando se completa la individualización, los únicos objetos existentes que reflejarán el nuevo estado individualizado son los que heredan de IWMDRMSecurity. No se actualizarán todos los demás objetos existentes. Debe liberar y volver a crear cualquier otro objeto para que reflejen el nuevo estado individualizado.

Ejemplo de individualización de DRM

Guía de programación

Uso del modelo de eventos de Media Foundation

Procedimientos recomendados de individualización de DRM de Windows Media