Copyright Protection Implementation

Microsoft provides software that facilitates the authentication process required by the content scrambling system (CSS) scheme, thus allowing a DVD-ROM drive to authenticate and transfer keys with a DVD decrypter. Microsoft does not ship a DVD decrypter. Instead, Microsoft provides operating system code that will act as the agent to allow either hardware or software decrypters to be authenticated.

The key exchange process is initiated and controlled by the DVD navigator/splitter filter. The DVD decoder minidriver only needs to implement the properties listed in the following section. The rest is handled by other components.

Each DVD input stream receives copyright protection properties. This is true even if all DVD streams are controlled by the same hardware.

The GUID of the video port property set is KSPROPSETID_CopyProt. The following properties are available.

Property Description

KSPROPERTY_DVDCOPY_CHLG_KEY

Both get and set are supported on this property. A get property requests the decoder to provide its bus challenge key. A set property provides the decoder with the bus challenge key from the DVD drive. The data passed in this property is a structure of type KS_DVDCOPY_CHLGKEY.

KSPROPERTY_DVDCOPY_DVD_KEY1

Set-only property. This property provides the DVD drive bus key 1 to the decoder. The data passed is a structure of type KS_DVDCOPY_BUSKEY.

KSPROPERTY_DVDCOPY_DEC_KEY2

Get-only property. This property requests that the decoder's bus key 2 be transferred to the DVD drive. The data passed is a structure of type KS_DVDCOPY_BUSKEY.

KSPROPERTY_DVDCOPY_TITLE_KEY

Set-only property. This provides Title Key from Current Content. The key is a structure of type KS_DVDCOPY_TITLEKEY.

KSPROPERTY_DVDCOPY_DISC_KEY

Set-only property. This provides Disc Key.

The key is a structure of type KS_DVDCOPY_DISCKEY.

KSPROPERTY_COPY_MACROVISION

Set-only property. The key is a structure of type KS_COPY_MACROVISION. This is the analog NTSC video stream and soon will handle NTSC macrovision properties.

KSPROPERTY_DVDCOPY_REGION

Get-only property. The DVD minidriver fits into exactly one region bit. The key is a structure of type KS_DVDCOPY_REGION.

KSPROPERTY_DVDCOPY_SET_COPY_STATE

Get- and set-only properties. The key is a structure of type KS_DVDCOPY_SET_COPY_STATE. This property uses

KS_DVDCOPYSTATE_AUTHENTICATION_NOT_REQUIRED,

KS_DVDCOPYSTATE_AUTHENTICATION_REQUIRED,

KS_DVDCOPYSTATE_INITIALIZE, and

KS_DVDCOPYSTATE_INITIALIZE_TITLE.

The following sequence is repeated on every open DVD input pin on the decoder. The decoder receives the keys in the following sequence:

Get KSPROPERTY_DVDCOPY_CHLG_KEY

Set KSPROPERTY_DVDCOPY_DVD_KEY1

Set KSPROPERTY_DVDCOPY_CHLG_KEY

Get KSPROPERTY_DVDCOPY_DEC_KEY2

Set KSPROPERTY_DVDCOPY_DISC_KEY

Then, the following keys are received:

Get KSPROPERTY_DVDCOPY_CHLG_KEY

Set KSPROPERTY_DVDCOPY_DVD_KEY1

Set KSPROPERTY_DVDCOPY_CHLG_KEY

Get KSPROPERTY_DVDCOPY_DEC_KEY2

Set KSPROPERTY_DVDCOPY_TITLE_KEY

This sequence also is repeated for every open DVD input pin on the decoder. It may occur at any time after a DVD disc key is successfully established and may occur more than once per disc key. Whenever a sector containing a Title Key is read, the authentication process must be successfully completed. If authentication fails, the read is blocked and a corresponding error message is returned.