Synchronisation de l’échange de clés avec Data Flow
Le processus d’échange de clé peut commencer avant que toutes les données de la clé précédente ne soient traitées. Un exemple de cela serait dans la transition du titre de la bande-annonce défini dans le main titre du programme défini sur certains films. Il existe un indicateur dans le membre TypeSpecificFlags de la structure KSSTREAM_HEADER pour chaque paquet de données. Cet indicateur est KS_AM_UseNewCSSKey, qui est défini dans ksmedia.h. Elle indique que l’exemple de données qui suit immédiatement cet en-tête est le premier exemple de données auquel la nouvelle clé de titre s’applique.
Si le déchiffreur peut traiter un nouvel échange de clé tout en utilisant l’ancienne clé, le mini-lecteur du décodeur DVD doit traiter l’échange de clés à mesure qu’il reçoit les propriétés. Si le déchiffreur doit attendre que toutes les données de film nécessitant la clé précédente soient traitées, le déchiffreur détient le SRB pour la propriété Set . Le déchiffreur utilise la structure KS_DVDCOPY_SET_COPY_STATE avec le paramètre KS_DVDCOPYSTATE_INITIALIZE ou KS_DVDCOPYSTATE_INITIALIZE_TITLE jusqu’à ce qu’il ait reçu l’indicateur KS_AM_UseNewCSSKey sur tous les flux qui y sont connectés. Après cela, le minidriver du décodeur DVD traite tous les paquets reçus jusqu’à ce point. Cela empêche l’utilisation de la clé incorrecte sur les données.