Executando a individualização de DRM
[O recurso associado a esta página, Windows Media Format 11 SDK, é um recurso herdado. Ele foi substituído por Leitor de Origem e Gravador de Coletor. O Leitor de Origem e o Gravador de Coletor foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use o Leitor de Origem e o Gravador de Coletor em vez do SDK do Windows Media Format 11, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]
A individualização é o processo de atualização do componente DRM no computador cliente, criptografá-lo e torná-lo exclusivo. Quando um computador é individualizado, o componente DRM é vinculado ao computador e não poderá decodificar conteúdo em nenhum outro computador. As APIs estendidas do cliente DRM do Windows Media dão suporte para individualizar o componente DRM em computadores cliente.
A individualização é executada chamando o método IWMDRMSecurity::P erformSecurityUpdate . Você pode chamar PerformSecurityUpdate para que ele seja individualizado somente se a versão no servidor for mais recente do que a instalada no computador cliente ou você puder forçar a individualização sem considerar as versões de segurança relativas. O sinalizador para a individualização necessária é WMDRM_SECURITY_PERFORM_INDIV. O sinalizador de individualização forçada é WMDRM_SECURITY_PERFORM_FORCE_INDIV.
PerformSecurityUpdate é uma chamada assíncrona. Ele retornará rapidamente e, em seguida, gerará eventos para fornecer informações status sobre o processo de individualização. A maioria dos eventos gerados será eventos MEWMDRMIndividualizationProgress e cada um tem uma interface IWMDRMIndividualizationStatus associada. Para obter a interface status, você deve chamar IMFMediaEvent::GetValue para recuperar um ponteiro IUnknown que está no mesmo objeto e, em seguida, consultá-lo para IWMDRMIndividualizationStatus.
Você pode obter dados para uma estrutura de WM_INDIVIDUALIZE_STATUS chamando IWMDRMIndividualizeStatus::GetStatus. Cada evento gerado tem seu próprio objeto com status, portanto, você deve passar pelo processo de obter o valor do evento e consultar a interface do status sempre.
Dependendo do tamanho do download, pode haver dezenas ou centenas de eventos MEWMDRMIndividualizationProgress . Quando o processo de individualização é concluído, um evento MEWMDRMIndividualizationCompleted é gerado.
Quando a individualização é concluída, os únicos objetos existentes que refletirão o novo estado individualizado são aqueles que herdam de IWMDRMSecurity. Todos os outros objetos existentes não serão atualizados. Você deve liberar e recriar outros objetos para que eles reflitam o novo estado individualizado.
Tópicos relacionados