Sesión multimedia de PMP
Una aplicación puede crear el de sesión multimedia de en un proceso independiente denominado proceso de ruta de acceso a medios protegidos (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 de medios protegidas.
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 drm, pero le ofrece 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 interfazIMFPMPHost. Por ejemplo, para admitir DRM, un origen multimedia crea un objeto denominado entidad de confianza de entrada (ITA). La ITA debe crearse dentro del proceso PMP. (Para obtener más información sobre las ITA, consulte ruta de acceso de medios protegidas). Para usar la interfazIMFPMPHost, haga lo siguiente:
- El origen de medios debe implementar la interfazIMFPMPClient.
- 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 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 los componentes multimedia protegidos de firma de código, consulte 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