Synchronisieren des Schlüsselaustauschs mit Datenfluss

Der Schlüsselaustauschprozess kann beginnen, bevor alle Daten aus dem vorherigen Schlüssel verarbeitet werden. Ein Beispiel hierfür wäre der Übergang vom Trailertitel in den Standard Programmtitel, der für einige Filme festgelegt ist. Es gibt ein Flag im TypeSpecificFlags-Member der KSSTREAM_HEADER-Struktur für jedes Datenpaket. Dieses Flag ist KS_AM_UseNewCSSKey, das in ksmedia.h definiert ist. Es gibt an, dass das Datenbeispiel, das unmittelbar auf diesen Header folgt, das erste Datenbeispiel ist, auf das der neue Titelschlüssel angewendet wird.

Wenn der Entschlüsseler einen neuen Schlüsselaustausch verarbeiten kann, während er weiterhin den alten Schlüssel verwendet, sollte der DVD-Decoder-Minidriver den Schlüsselaustausch verarbeiten, während er die Eigenschaften empfängt. Wenn der Entschlüsseler warten muss, bis alle Filmdaten verarbeitet wurden, die den vorherigen Schlüssel erfordern, enthält der Entschlüsseler den SRB für die Set-Eigenschaft . Der Entschlüsseler verwendet die KS_DVDCOPY_SET_COPY_STATE-Struktur mit dem Parameter KS_DVDCOPYSTATE_INITIALIZE oder KS_DVDCOPYSTATE_INITIALIZE_TITLE , bis er das KS_AM_UseNewCSSKey-Flag für alle Datenströme empfangen hat, die damit verbunden sind. Danach verarbeitet der DVD-Decoder minidriver alle pakete, die bis zu diesem Zeitpunkt empfangen wurden. Dies verhindert die Verwendung des falschen Schlüssels für die Daten.