DRMRIGHTS structure (drmk.h)
The DRMRIGHTS structure specifies the DRM content rights assigned to a KS audio pin or to a port-class driver's stream object.
Syntax
typedef struct tagDRMRIGHTS {
BOOL CopyProtect;
ULONG Reserved;
BOOL DigitalOutputDisable;
} DRMRIGHTS, *PDRMRIGHTS;
Members
CopyProtect
Specifies one of the following copy-protection values:
TRUE
Enables copy protection. An audio application must not do the following:
- Store the content in any form in any nonvolatile storage.
- Pass the content by reference or by value to any other component within the host system that is not authenticated by the DRM system.
FALSE
Disables copy protection. Content can be copied without restrictions.
For more information about CopyProtect, see the Remarks section.
Reserved
Reserved for future use. Initialize to zero.
DigitalOutputDisable
Specifies one of the following digital output protection values:
TRUE
Disable digital outputs. A software component must not transfer the content out of the host system through any type of digital interface. Note that digital output protection does not affect USB devices because the host system includes USB devices.
FALSE
Enables digital outputs. Content can be transferred from the host system to an external component without restrictions.
For more information about DigitalOutputDisable, see the Remarks section.
Remarks
The Windows Certification Program places specific requirements on the way an audio driver handles the CopyProtect and DigitalOutputDisable values. These requirements are applicable when the CopyProtect and DigitalOutputDisable values are applied to an audio stream and to the output from which the audio stream is accessed. New requirements for Windows 7 include the correct way to program the serial copy management system (SCMS) for S/PDIF endpoints, and high-bandwidth digital content protection (HDCP) for HDMI endpoints.
The following table summarizes the content protection state that the driver must establish for different values of CopyProtect and DigitalOutputDisable.
DRMRIGHTS Boolean members | Resulting content protection | ||
DigitalOutputDisable | CopyProtect | HDMI and Display port | S/PDIF |
False | False | Enabled with no HDCP | Enabled with no SCMS |
False | True | Enabled with HDCP | Enabled with SCMS |
True | Don't care | Enabled with HDCP | Disabled |
If the driver supports DRMRIGHTS and also implements a proprietary copy protection mechanism, the driver must aggregate the result of the proprietary implementation with the values of CopyProtect and DigitalOutputDisable to determine the final copy protection state. The final copy protection state must be the most restrictive of all outstanding copy protection requests.
The DEFINE_DRMRIGHTS_DEFAULT macro defines a constant DRMRIGHTS structure that specifies default DRM content rights.
VOID DEFINE_DRMRIGHTS_DEFAULT(
DRMRIGHTS DrmRights
);
Parameters
DrmRights
DRMRIGHTS
Specifies a name for a constant DRMRIGHTS structure. The macro sets the members of DrmRights to the following default values:
Return value
VOID
This macro does not return a value.
Requirements
Requirement | Value |
---|---|
Header | drmk.h (include Drmk.h) |