DirectShow Animated Header -- DVD Copy Protection Property Set DirectShow Animated Header -- DVD Copy Protection Property Set* Microsoft DirectShow SDK
*Index  *Topic Contents
*Previous Topic: DVD Subpicture Property Set
*Next Topic: Pin Property Set

DVD Copy Protection Property Set


The DVD Copy Protection property set provides authentication of copy protection information from hardware or software decrypters. Use this property set to prevent unauthorized copying from prerecorded DVD-Video.

Microsoft provides software that facilitates the authentication process required by the encryption scheme, thus enabling a DVD-ROM drive to authenticate and transfer keys with a DVD decrypter. Microsoft has no current plans to ship a DVD decrypter and, instead, is providing operating system code that will act as the agent to enable authentication of either hardware or software decrypters.

The DVD navigator initiates and controls the key exchange process. The DVD minidriver needs only to implement the following properties. Other components handle the rest.

Each DVD input stream will receive copy protection properties. This is true even if the same hardware controls all DVD streams.

The following information presents the necessary constants and data types to use for this property set in calls to IKsPropertySet methods. It provides values for the GUID (guidPropSet), property ID (dwPropID), and property data type (pPropData) parameters.

Property Set GUID: AM_KSPROPSETID_CopyProt
Property ID Data type used by the specified property
AM_PROPERTY_COPY_MACROVISION AM_COPY_MACROVISION
AM_PROPERTY_DVDCOPY_CHLG_KEY AM_DVDCOPY_CHLGKEY
AM_PROPERTY_DVDCOPY_DEC_KEY2 AM_DVDCOPY_BUSKEY
AM_PROPERTY_DVDCOPY_DISC_KEY AM_DVDCOPY_DISCKEY
AM_PROPERTY_DVDCOPY_DVD_KEY1 AM_DVDCOPY_BUSKEY
AM_PROPERTY_DVDCOPY_REGION The DVD_REGION structure.
AM_PROPERTY_DVDCOPY_SET_COPY_STATE AM_DVDCOPY_SET_COPY_STATE
AM_PROPERTY_DVDCOPY_TITLE_KEY AM_DVDCOPY_TITLEKEY

The following list provides the DVD Copy Protection property IDs and descriptions.

AM_PROPERTY_COPY_MACROVISION
This is a set-only property. This property sets the Macrovision level for the NTSC encoder on the output end of the receiving pin.
AM_PROPERTY_DVDCOPY_CHLG_KEY
Both get and set operations are supported on this property. A get operation requests the decoder to provide its bus challenge key. A set operation provides the decoder with the bus challenge key from the DVD drive. The data passed in this property will be a structure of type AM_DVDCOPY_CHLGKEY.
AM_PROPERTY_DVDCOPY_DEC_KEY2
This is a get-only property. This property requests that the decoder's bus key 2 be transferred to the DVD drive. The data passed will be a structure of type AM_DVDCOPY_BUSKEY.
AM_PROPERTY_DVDCOPY_DISC_KEY
Set-only property. This provides disc key. The key is a structure of type AM_DVDCOPY_DISCKEY.
AM_PROPERTY_DVDCOPY_DVD_KEY1
This is a set-only property. This property provides the DVD drive bus key 1 to the decoder. The data passed will be a structure of type AM_DVDCOPY_BUSKEY.
AM_PROPERTY_DVDCOPY_SET_COPY_STATE
Both get and set are supported on this property. Get is called first to determine if authentication is required. The set properties are indications as to which phase of copy protection negotiation the filter is entering. The data passed will be a structure of type AM_DVDCOPY_SET_COPY_STATE.
AM_PROPERTY_DVDCOPY_REGION
Region code requests the region definition that the decoder is allowed to play in as defined by the DVD consortium. This region is defined by the following structure:

typedef struct _DVD_REGION {
   UCHAR CopySystem;   //specifies whether or not the disk is copy protected
   UCHAR RegionData;    //information about the region from decoder
   UCHAR SystemRegion;  //information about region from DVD drive
   UCHAR Reserved; //reserved
} DVD_REGION, *PDVD_REGION;
AM_PROPERTY_DVDCOPY_TITLE_KEY
This is a set-only property. This provides title key from current content. The key is a structure of type AM_DVDCOPY_TITLEKEY.

Use the IKsPropertySet interface to set, retrieve, and query for support of these properties.

This property set uses the following data types.
Data type Description
AM_COPY_MACROVISION Macrovision level for the NTSC encoder.
AM_COPY_MACROVISION_LEVEL Macrovision level. The AM_COPY_MACROVISION structure uses this data type.
AM_DVDCOPY_BUSKEY DVD bus key.
AM_DVDCOPY_CHLGKEY DVD challenge key.
AM_DVDCOPY_DISCKEY DVD disc key.
AM_DVDCOPY_SET_COPY_STATE Determines the copy protection state of the filter.
AM_DVDCOPYSTATE Copy protection state. The AM_DVDCOPY_SET_COPY_STATE structure uses this data type.
AM_DVDCOPY_TITLEKEY DVD title key from the current content.


AM_COPY_MACROVISION

DVD Copy Protection Property Set

Macrovision level for the NTSC encoder.


typedef struct _AM_COPY_MACROVISION {
	ULONG MACROVISIONLevel;
} AM_COPY_MACROVISION, *PAM_COPY_MACROVISION;
Members
MACROVISIONLevel
Macrovision level for the NTSC encoder. Member of the AM_COPY_MACROVISION_LEVEL enumerated data type.
Remarks

The AM_PROPERTY_COPY_MACROVISION property uses this structure.


AM_COPY_MACROVISION_LEVEL

DVD Copy Protection Property Set

Macrovision level.


typedef enum {
	AM_MACROVISION_DISABLED,
	AM_MACROVISION_LEVEL1,
	AM_MACROVISION_LEVEL2,
	AM_MACROVISION_LEVEL3
} AM_COPY_MACROVISION_LEVEL, *PAM_COPY_MACROVISION_LEVEL;
Values
AM_MACROVISION_DISABLED
Disabled.
AM_MACROVISION_LEVEL1
Level 1.
AM_MACROVISION_LEVEL2
Level 2.
AM_MACROVISION_LEVEL3
Level 3.
Remarks

The AM_COPY_MACROVISION structure uses this data type.


AM_DVDCOPY_BUSKEY

DVD Copy Protection Property Set

DVD bus key.

 typedef struct _AM_DVDCOPY_BUSKEY {
    BYTE BusKey[5];
    BYTE Reserved[1];
} AM_DVDCOPY_BUSKEY, *PAM_DVDCOPY_BUSKEY;
Members
BusKey
DVD drive bus key.
Reserved
Reserved.
Remarks

The AM_PROPERTY_DVDCOPY_DVD_KEY1 and AM_PROPERTY_DVDCOPY_DEC_KEY2 properties use this structure.

A bus key is used for the DVD CSS key exchange for decryption. Implementors should get a CSS license and further instructions from CSS. See DVD-Video specification for contact information.


AM_DVDCOPY_CHLGKEY

DVD Copy Protection Property Set

DVD challenge key.

 typedef struct _AM_DVDCOPY_CHLGKEY {
    BYTE ChlgKey[10];
    BYTE Reserved[2];
} AM_DVDCOPY_CHLGKEY, *PAM_DVDCOPY_CHLGKEY;
Members
ChlgKey
Challenge key.
Reserved
Reserved.
Remarks

The AM_PROPERTY_DVDCOPY_CHLG_KEY property uses this structure.

A challenge key is used for the DVD CSS key exchange for decryption. Implementors should get a CSS license and further instructions from CSS. See DVD-Video specification for contact information.


AM_DVDCOPY_DISCKEY

DVD Copy Protection Property Set

DVD disc key.

 typedef struct _AM_DVDCOPY_DISCKEY {
    BYTE DiscKey[2048];
} AM_DVDCOPY_DISCKEY, *PAM_DVDCOPY_DISCKEY;
Members
DiscKey
DVD disc key.
Remarks

The AM_PROPERTY_DVDCOPY_DISC_KEY property uses this structure.

A disc key is used for the DVD CSS key exchange for decryption. Implementors should get a CSS license and further instructions from CSS. See DVD-Video specification for contact information.


AM_DVDCOPY_SET_COPY_STATE

DVD Copy Protection Property Set

Determines the copy protection state of the filter.

typedef struct AM_DVDCOPY_SET_COPY_STATE {
	ULONG DVDCopyState;
} AM_DVDCOPY_SET_COPY_STATE, *PAM_DVDCOPY_SET_COPY_STATE;
Members
DVDCopyState
Copy protection state of the filter. Member of the AM_DVDCOPYSTATE enumerated data type.
Remarks

Both the IKsPropertySet::Get and IKsPropertySet::Set methods are supported on this property. The IKsPropertySet::Get method is called first to determine if authentication is required. If a filter provides multiple pins that use the same authenticator, such as a hardware DVD decoder, the decoder might respond with AM_DVDCOPYSTATE_AUTHENTICATION_NOT_REQUIRED on some pins to indicate that the key exchange algorithm only needs to be applied once. The filter should respond with AM_DVDCOPYSTATE_AUTHENTICATION_REQUIRED to get the copy protection state property on the first pin where this property is issued.

The IKsPropertySet::Set method is used to indicate which phase of copy protection negotiation the filter is entering. Specify these by setting the required flag in the AM_DVDCOPYSTATE enumerated type.

The AM_PROPERTY_DVDCOPY_SET_COPY_STATE property uses this structure.


AM_DVDCOPYSTATE

DVD Copy Protection Property Set

Copy protection state.

typedef enum {
	AM_DVDCOPYSTATE_INITIALIZE,
AM_DVDCOPYSTATE_INITIALIZE_TITLE,	
	AM_DVDCOPYSTATE_AUTHENTICATION_NOT_REQUIRED, 
	AM_DVDCOPYSTATE_AUTHENTICATION_REQUIRED,	      
	AM_DVDCOPYSTATE_DONE
} AM_DVDCOPYSTATE;
Values
AM_DVDCOPYSTATE_INITIALIZE
Starting a full key-exchange algorithm.
AM_DVDCOPYSTATE_INITIALIZE_TITLE
Starting a title key-exchange algorithm.
AM_DVDCOPYSTATE_AUTHENTICATION_NOT_REQUIRED
Authentication is not required.
AM_DVDCOPYSTATE_AUTHENTICATION_REQUIRED
Authentication required.
AM_DVDCOPYSTATE_DONE
Key exchange negotiation is complete.
Remarks

The AM_DVDCOPY_SET_COPY_STATE structure uses this data type.


AM_DVDCOPY_TITLEKEY

DVD Copy Protection Property Set

DVD title key from the current content.

 typedef struct AM_DVDCOPY_TITLEKEY {
    ULONG KeyFlags;
    UCHAR TitleKey[6];
    UCHAR Reserved[2];
} AM_DVDCOPY_TITLEKEY, *PAM_DVDCOPY_TITLEKEY;
Members
KeyFlags
Key flags.
TitleKey
Title key.
Reserved
Reserved.
Remarks

The AM_PROPERTY_DVDCOPY_TITLE_KEY property uses this structure.

A title key is used for the DVD CSS key exchange for decryption. Implementors should get a CSS license and further instructions from CSS. See DVD-Video specification for contact information.

© 1998 Microsoft Corporation. All rights reserved. Terms of Use.

*Top of Page