키 교환을 Data Flow 동기화

키 교환 프로세스는 이전 키의 모든 데이터가 처리되기 전에 시작될 수 있습니다. 예를 들어 예고편 타이틀에서 일부 영화에서 설정된 기본 프로그램 타이틀로 전환하는 것이 있습니다. 각 데이터 패킷에 대한 KSSTREAM_HEADER 구조체의 TypeSpecificFlags 멤버에 플래그가 있습니다. 이 플래그는 ksmedia.h에 정의된 KS_AM_UseNewCSSKey. 헤더 바로 뒤의 데이터 샘플이 새 타이틀 키가 적용되는 첫 번째 데이터 샘플임을 나타냅니다.

암호 해독기가 이전 키를 계속 사용하는 동안 새 키 교환을 처리할 수 있는 경우 DVD 디코더 미니드라이버가 속성을 받을 때 키 교환을 처리해야 합니다. 암호 해독기가 이전 키가 필요한 모든 동영상 데이터가 처리될 때까지 기다려야 하는 경우 암호 해독기는 Set 속성에 대한 SRB를 보유합니다. 암호 해독기는 연결된 모든 스트림에서 KS_AM_UseNewCSSKey 플래그를 받을 때까지 매개 변수 KS_DVDCOPYSTATE_INITIALIZE 또는 KS_DVDCOPYSTATE_INITIALIZE_TITLE KS_DVDCOPY_SET_COPY_STATE 구조를 사용합니다. 그런 다음 DVD 디코더 미니드라이버가 해당 시점까지 받은 모든 패킷을 처리합니다. 이렇게 하면 데이터에 잘못된 키를 사용할 수 없습니다.