Sesión de medios PMP
Una aplicación puede crear la sesión multimedia en un proceso independiente denominado ruta de acceso multimedia protegida (PMP). El propósito principal del proceso PMP es habilitar la reproducción de contenido protegido mediante la administración de derechos digitales (DRM). De forma predeterminada, el proceso PMP se crea dentro de un entorno protegido (PE). Solo se pueden cargar componentes firmados de confianza dentro de un PE. Una ventaja secundaria del proceso PMP es que aísla el proceso de aplicación de la canalización multimedia. Para obtener más información sobre el proceso PMP, consulte Ruta de acceso multimedia protegida.
Para crear la sesión multimedia dentro del proceso PMP, llame a la función MFCreatePMPMediaSession . Opcionalmente, puede pasar la marca MFPMPSESSION_UNPROTECTED_PROCESS . Si se establece esta marca, el proceso PMP se crea dentro de un proceso desprotegido y no un proceso pe. El proceso desprotegido no se puede usar para la reproducción de DRM, pero le proporciona las ventajas del aislamiento de procesos.
La función MFCreatePMPMediaSession devuelve un puntero a un objeto proxy para la sesión multimedia. La aplicación se comunica con la sesión multimedia a través del proxy.
De forma predeterminada, cuando la aplicación crea una topología, el origen multimedia se crea dentro del proceso de aplicación. Se crea un proxy al origen multimedia dentro del proceso PMP. El origen multimedia puede crear objetos dentro del proceso PMP mediante la interfaz IMFPMPHost . Por ejemplo, para admitir DRM, un origen multimedia crea un objeto denominado entidad de confianza de entrada (ITA). El ITA debe crearse dentro del proceso PMP. (Para obtener más información sobre las TI, consulte Ruta de acceso de medios protegida). Para usar la interfaz IMFPMPHost , haga lo siguiente:
- El origen multimedia debe implementar la interfaz IMFPMPClient .
- Durante la resolución de topología, el proxy de sesión multimedia llama al método IMFPMPClient::SetPMPHost en el origen multimedia.
- El origen multimedia llama a IMFPMPHost::CreateObjectByCLSID para crear el objeto dentro del proceso PMP. El objeto debe tener un CLSID registrado. Además, para cargar dentro del PE, el objeto debe estar firmado digitalmente y de confianza. Para obtener información sobre la firma de código de componentes multimedia protegidos, vea las notas del producto Firma de código para componentes multimedia protegidos en Windows Vista.
En la ilustración siguiente se muestra el origen multimedia creado en el proceso de aplicación.
Otra alternativa es crear el origen multimedia dentro de la sesión PMP.
Establezca el atributo MF_SESSION_REMOTE_SOURCE_MODE al crear la sesión multimedia. Los atributos de configuración se especifican en el parámetro pConfiguration de la función MFCreatePMPMediaSession .
Llame a MFGetService en la sesión multimedia para obtener un puntero a la interfaz IMFPMPHost . El identificador de servicio es MF_PMP_SERVICE.
Llame a IMFPMPHost::CreateObjectByCLSID con el identificador de clase CLSID_MFSourceResolver para crear el solucionador de origen dentro del proceso PMP. El método devuelve un puntero a un proxy para la resolución de origen.
Llame a IMFSourceResolver::BeginCreateObjectFromURL o IMFSourceResolver::BeginCreateObjectFromByteStream para crear el origen multimedia.
Nota
En este caso, debe usar las versiones asincrónicas de estos métodos, ya que las versiones sincrónicas no son remotables.
En la ilustración siguiente se muestra el origen multimedia creado en el proceso PMP.
Temas relacionados