Compartilhar via


Sincronizando o Key Exchange com Fluxo de Dados

O processo de troca de chaves pode começar antes que todos os dados da chave anterior sejam processados. Um exemplo disso seria na transição do título do trailer definido para o título do programa main definido em alguns filmes. Há um sinalizador no membro TypeSpecificFlags da estrutura KSSTREAM_HEADER para cada pacote de dados. Esse sinalizador é KS_AM_UseNewCSSKey, que é definido em ksmedia.h. Indica que o exemplo de dados imediatamente após esse cabeçalho é o primeiro exemplo de dados ao qual a nova chave de título se aplica.

Se o descriptografador puder processar uma nova troca de chaves enquanto ainda estiver usando a chave antiga, o minidriver de decodificador de DVD deverá processar a troca de chaves à medida que recebe as propriedades. Se o descriptografador precisar aguardar até que todos os dados de filme que exigem a chave anterior sejam processados, o descriptografador conterá o SRB para a propriedade Set . O descriptografia usa a estrutura KS_DVDCOPY_SET_COPY_STATE com o parâmetro KS_DVDCOPYSTATE_INITIALIZE ou KS_DVDCOPYSTATE_INITIALIZE_TITLE até receber o sinalizador KS_AM_UseNewCSSKey em todos os fluxos conectados a ele. Depois disso, o minidriver de decodificador de DVD processa todos os pacotes recebidos até esse ponto. Isso impede o uso da chave incorreta nos dados.