Esecuzione dell'individualizzazione DRM

[La funzionalità associata a questa pagina, Windows Media Format 11 SDK, è una funzionalità legacy. È stata sostituita dal lettore di origine e dal writer sink. Lettore di origine e writer sink sono stati ottimizzati per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi lettore di origine e writer sink anziché Windows Media Format 11 SDK, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

L'individualizzazione è il processo di aggiornamento del componente DRM nel computer client, la crittografia e la rende univoca. Quando un computer viene individualizzato, il componente DRM è associato al computer e non sarà in grado di decodificare il contenuto in qualsiasi altro computer. Le API estese del client DRM Windows Media forniscono supporto per l'individualizzazione del componente DRM nei computer client.

La individualizzazione viene eseguita chiamando il metodo IWMDRMSecurity::P erformSecurityUpdate . È possibile chiamare PerformSecurityUpdate in modo che venga individualizzato solo se la versione nel server è più recente di quella installata nel computer client oppure è possibile forzare l'individualizzazione senza considerare le versioni di sicurezza relative. Il flag per l'individualizzazione in base alle esigenze è WMDRM_SECURITY_PERFORM_INDIV. Il flag per l'individualizzazione forzata è WMDRM_SECURITY_PERFORM_FORCE_INDIV.

PerformSecurityUpdate è una chiamata asincrona. Verrà restituito rapidamente e quindi generato eventi per fornire informazioni sullo stato sul processo di individualizzazione. La maggior parte degli eventi generati sarà MEWMDRMIndividualizationProgress eventi e ognuno ha un'interfaccia IWMDRMIndividualizationStatus associata. Per ottenere l'interfaccia di stato, è necessario chiamare IMFMediaEvent::GetValue per recuperare un puntatore IUnknown che si trova nello stesso oggetto e quindi eseguire una query per IWMDRMIndividualizationStatus.

È possibile ottenere dati per una struttura di WM_INDIVIDUALIZE_STATUS chiamando IWMDRMIndividualizeStatus::GetStatus. Ogni evento generato ha un proprio oggetto con stato, quindi è necessario eseguire ogni volta il processo di recupero del valore dell'evento e l'esecuzione di query per l'interfaccia di stato.

A seconda delle dimensioni del download, potrebbero esserci decine o centinaia di eventi MEWMDRMIndividualizationProgress . Al termine del processo di individualizzazione, viene generato un evento MEWMDRMIndividualizationCompleted .

Al termine dell'individualizzazione, gli unici oggetti esistenti che rifletteranno il nuovo stato individualizzato sono quelli che ereditano da IWMDRMSecurity. Tutti gli altri oggetti esistenti non verranno aggiornati. È necessario rilasciare e ricreare qualsiasi altro oggetto in modo che riflettano il nuovo stato individualizzato.

Esempio di individualizzazione DRM

Guida per programmatori

Utilizzo del modello di evento Media Foundation

Procedure consigliate per l'individualizzazione DRM di Windows Media