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.
typedef struct _DVD_REGION { UCHAR CopySystem; //specifies whether 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;
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. |
Macrovision level for the NTSC encoder.
Syntax
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.
Macrovision level.
Syntax
typedef enum { AM_MACROVISION_DISABLED, AM_MACROVISION_LEVEL1, AM_MACROVISION_LEVEL2, AM_MACROVISION_LEVEL3 } AM_COPY_MACROVISION_LEVEL, *PAM_COPY_MACROVISION_LEVEL;
Elements
- 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.
DVD bus key.
Syntax
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.
DVD challenge key.
Syntax
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.
DVD disc key.
Syntax
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.
Determines the copy protection state of the filter.
Syntax
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.
Copy protection state.
Syntax
typedef enum { AM_DVDCOPYSTATE_INITIALIZE, AM_DVDCOPYSTATE_INITIALIZE_TITLE, AM_DVDCOPYSTATE_AUTHENTICATION_NOT_REQUIRED, AM_DVDCOPYSTATE_AUTHENTICATION_REQUIRED, AM_DVDCOPYSTATE_DONE } AM_DVDCOPYSTATE;
Elements
- 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.
DVD title key from the current content.
Syntax
typedef struct AM_DVDCOPY_TITLEKEY { ULONG KeyFlags; UCHAR TitleKey[6]; UCHAR Reserved[2]; } AM_DVDCOPY_TITLEKEY, *PAM_DVDCOPY_TITLEKEY;
Members
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.
Top of Page
© 2000 Microsoft and/or its suppliers. All rights reserved. Terms of Use.