Sessione multimediale PMP
Un'applicazione può creare il sessione multimediale in un processo separato denominato processo (PMP) percorso multimediale protetto. Lo scopo principale del processo PMP è quello di abilitare la riproduzione di contenuti protetti tramite DRM (Digital Rights Management). Per impostazione predefinita, il processo PMP viene creato all'interno di un ambiente protetto (PE). Solo i componenti firmati attendibili possono essere caricati all'interno di un PE. Un vantaggio secondario del processo PMP è che isola il processo dell'applicazione dalla pipeline multimediale. Per altre informazioni sul processo PMP, vedere Percorso multimediale protetto.
Per creare la sessione multimediale all'interno del processo PMP, chiamare la funzioneMFCreatePMPMediaSession. Facoltativamente, è possibile passare il flag MFPMPSESSION_UNPROTECTED_PROCESS. Se questo flag è impostato, il processo PMP viene creato all'interno di un processo non protetto e non in un processo PE. Il processo non protetto non può essere usato per la riproduzione DRM, ma offre i vantaggi dell'isolamento del processo.
La funzione MFCreatePMPMediaSession restituisce un puntatore a un oggetto proxy per la sessione multimediale. L'applicazione comunica con la sessione multimediale tramite il proxy.
Per impostazione predefinita, quando l'applicazione crea una topologia, l'origine multimediale viene creata all'interno del processo dell'applicazione. Un proxy per l'origine multimediale viene creato all'interno del processo PMP. L'origine multimediale può creare oggetti all'interno del processo PMP usando l'interfacciaIMFPMPHost. Ad esempio, per supportare DRM, un'origine multimediale crea un oggetto denominato 'autorità di attendibilità di input (ITA). L'ITA deve essere creato all'interno del processo PMP. Per altre informazioni sugli ITA, vedere Protected Media Path.) Per usare l'interfacciaIMFPMPHost, eseguire le operazioni seguenti:
- L'origine multimediale deve implementare l'interfacciaIMFPMPClient.
- Durante la risoluzione della topologia, il proxy sessione multimediale chiama il metodo IMFPMPClient::SetPMPHost nell'origine multimediale.
- L'origine multimediale chiama IMFPMPHost::CreateObjectByCLSID per creare l'oggetto all'interno del processo PMP. L'oggetto deve avere un CLSID registrato. Inoltre, per caricare all'interno di PE, l'oggetto deve essere considerato attendibile e firmato digitalmente. Per informazioni sui componenti multimediali protetti per la firma del codice, vedere il white paper Firma del codice per i componenti multimediali protetti in Windows Vista
La figura seguente mostra l'origine multimediale creata nel processo dell'applicazione.
Un'altra alternativa consiste nel creare l'origine multimediale all'interno della sessione PMP.
Impostare l'attributo MF_SESSION_REMOTE_SOURCE_MODE quando si crea la sessione multimediale. Gli attributi di configurazione vengono specificati nel parametro pConfiguration della funzioneMFCreatePMPMediaSession.
Chiamare MFGetService nella sessione multimediale per ottenere un puntatore all'interfaccia IMFPMPHost. L'identificatore del servizio è MF_PMP_SERVICE.
Chiamare IMFPMPHost::CreateObjectByCLSID con l'identificatore di classe CLSID_MFSourceResolver per creare il resolver di origine all'interno del processo PMP. Il metodo restituisce un puntatore a un proxy per il resolver di origine.
Chiamare IMFSourceResolver::BeginCreateObjectFromURL o IMFSourceResolver::BeginCreateObjectFromByteStream per creare l'origine multimediale.
Nota
In questo caso, è necessario usare le versioni asincrone di questi metodi, perché le versioni sincrone non sono remotabili.
La figura seguente mostra l'origine multimediale creata nel processo PMP.
Argomenti correlati