Compartir a través de


Trabajar con niveles de protección de salida

[La característica asociada a esta página, SDK de Windows Media Format 11, es una característica heredada. Se ha reemplazado por lector de origen y escritor receptor. El lector de origen y el sistema de escritura receptor se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use lector de origen 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.

Las licencias creadas mediante el SDK de Windows Media Rights Manager 10 pueden especificar restricciones de acción mediante niveles de protección de salida (OPLs). Las OPLs permiten a un creador de licencias permitir algunas acciones solo en dispositivos con tecnologías específicas. Las ventajas de usar opls es que se obtiene más flexibilidad en la creación de restricciones de licencia que las versiones anteriores. Además, las OPLs se pueden expandir para dar cabida a las tecnologías futuras. Puede admitir estas licencias en las aplicaciones mediante los métodos de la interfaz IWMDRMReader2 .

Para leer los archivos protegidos por una licencia que especifica las OPLs, debe comprobar el OPL para obtener la acción deseada. La tecnología de salida que usa la aplicación debe ser permitida por la OPL en la licencia. Por ejemplo, algunas licencias para audio protegido pueden requerir que use una ruta de acceso de audio segura para reproducirlo.

Configuración del lector para evaluar los niveles de protección de salida

Para poder comprobar las OPLs de los archivos cargados en el lector, debe llamar al método IWMDRMReader2::SetEvaluateOutputLevelLicenses , pasando TRUE para el parámetro fEvaluate . Si no llama a este método, las licencias que requieren OPLs no son visibles para la aplicación.

Evaluación de los niveles de protección de salida de copia

Para obtener niveles de protección de salida para la acción de copia, llame al método IWMDRMReader2::GetCopyOutputLevels . Los datos que recibe de la llamada se almacenan en una estructura de DRM_COPY_OPL . La estructura contiene un nivel de protección de salida base, que especifica el nivel de salida mínimo para la acción de copia en la licencia. Sin embargo, la estructura de DRM_COPY_OPL también contiene dos listas de identificadores tecnológicos: uno para las tecnologías permitidas que se clasifican en un OPL inferior que la base y otra para las tecnologías que tienen una clasificación igual o superior a la OPL base, pero que están restringidas por la licencia. Debe comprobar las inclusiones y exclusiones para asegurarse de que la tecnología que usa la aplicación está permitida por la licencia.

Evaluación de los niveles de protección de salida de reproducción

Para obtener niveles de protección de salida para la acción de reproducción, llame al método IWMDRMReader2::GetPlayOutputLevels . Los datos que recibe de la llamada se almacenan en una estructura de DRM_PLAY_OPL . La estructura contiene otras estructuras. Los niveles de protección de salida base para la acción de reproducción se almacenan en una estructura de DRM_MINIMUM_OUTPUT_PROTECTION_LEVELS (el miembro minOPL de DRM_PLAY_OPL), que define el OPL mínimo necesario para reproducir contenido en diversos formatos. Debe comprobar el miembro del tipo de formatos de salida que entrega la aplicación.

La estructura de DRM_PLAY_OPL define dos tipos de restricciones: los identificadores de protección de salida de vídeo permitidos y el muestreo requeridos.

El muestreo descendente necesario se define como una lista de identificadores de tecnología de salida (el miembro oplIdDownsample de DRM_PLAY_OPL) que, si se usa, solo puede recibir el contenido para su reproducción si el contenido se muestrea primero en una velocidad de bits inferior.

Los identificadores de protección de salida de vídeo permitidos se definen como una lista de tecnologías de salida de vídeo con información de configuración para cada uno.

Control de varias licencias

Algunos archivos pueden tener varias licencias asociadas en el almacén de licencias local. Al evaluar las OPLs de un archivo que está leyendo, puede buscar licencias adicionales llamando al método IWMDRMReader2::TryNextLicense . Debe seguir probando licencias hasta que encuentre una que permita la acción que desea realizar o hasta que TryNextLicense devuelva DRM_S_FALSE, lo que indica que no hay más licencias.

En algunos casos, un archivo podría tener una licencia asociada que requiera una OPL que la aplicación no pueda admitir. En tal caso, es importante comprobar si hay licencias adicionales porque puede existir una licencia que no especifique OPLs.

Nota DRM no es compatible con la versión basada en x64 de este SDK.

Habilitación de la compatibilidad con DRM

Interfaz IWMDRMReader2