Determining the Protection Level for a Physical Output
You should use the algorithms in the following sections to determine the protection level for a physical video output connector. These algorithms are represented in pseudocode.
Algorithm for Protection Level
You should use the following algorithm to determine the protection level value for a physical video output connector:
For each protection type (ACP, CGMS-A, HDCP, and DPCP) that the physical output connector supports, perform the following steps:
Set the proposed protection level to no output protection. For example, for ACP, a driver should set the protection level to DXGKMDT_OPM_ACP_OFF; for CGMS-A, a driver should set the protection level to DXGKMDT_OPM_CGMSA_OFF; for HDCP, a driver should set the protection level to DXGKMDT_OPM_HDCP_OFF; and for DPCP, a driver should set the protection level to DXGKMDT_OPM_DPCP_OFF.
For each protected output that is associated with the physical output connector, perform the following steps:
- Retrieve the current protected output's protection level for the current protection type.
- If the current protection type is CGMS-A, remove the DXGKMDT_OPM_REDISTRIBUTION_CONTROL_REQUIRED flag if the flag is set.
- End if
- If the current protected output's protection level has a higher precedence than the proposed protection level, set the proposed protection level to the current protected output's protection level.
- End if
End for
Set the physical output's protection level to the proposed protection level.
End for
Algorithm for Redistribution Control
You should use the following algorithm to determine if a physical output connector must enable redistribution control:
For each protected output that is associated with the physical output connector, perform the following steps:
Retrieve the information on whether the current protected output's redistribution control flag is set.
If the DXGKMDT_OPM_REDISTRIBUTION_CONTROL_REQUIRED flag is set, perform the following steps:
- Enable redistribution control.
- Stop executing the algorithm.
End if
End for