将优先顺序分配到保护级别

将优先值分配给每种保护类型的每个保护级别。 这样,如果两个或更多个受保护的输出与物理输出相关联,并且每个受保护的输出具有不同的保护级别,则物理输出可以确定要使用的保护级别。

Microsoft DirectX 图形内核子系统 (Dxgkrnl.sys) 可以多次调用显示微型端口驱动程序的 DxgkDdiOPMCreateProtectedOutput 函数,以便为特定物理输出创建多个受保护的输出。 此外,对于同一输出保护类型,每个受保护的输出都可以具有不同的保护级别。

例如,假设图形适配器有一个复合输出,该输出具有 CGMS-A 保护类型,并且受保护的输出 A 和 B 都与该复合输出相关联。 接下来,假设受保护的输出 A 的 CGMS-A 保护级别 设置为 DXGKMDT_OPM_CGMSA_COPY_NO_MORE而受保护的输出 B 的 CGMS-A 保护级别设置为 DXGKMDT_OPM_CGMSA_COPY_ONE_GENERATION。 在这种情况下,物理输出不能同时使用这两个保护级别。 因此,由于物理输出一次只能输出一个 CGMS-A 保护级别,因此物理输出必须使用优先级较高的 CGMS-A 保护级别。

以下各节显示了当不同的受保护输出指示物理输出使用不同的保护级别时,物理输出应使用哪个保护级别 (从最高到最低优先级) 。 请注意,这些表适用于具有 COPP 或 OPM 语义的受保护输出。

ACP 保护级别优先级

当不同的受保护输出指示物理输出使用不同的 ACP 保护级别时,物理输出应使用优先级较高的保护级别,如下表所示。 请注意,此表适用于具有 COPP 语义的受保护输出。

ACP 保护级别值 优先级

DXGKMDT_OPM_ACP_OFF (0)

最低优先级 (0)

DXGKMDT_OPM_ACP_LEVEL_ONE (1)

1

DXGKMDT_OPM_ACP_LEVEL_THREE (3)

2

DXGKMDT_OPM_ACP_LEVEL_TWO (2)

最高优先级 (3)

CGMS-A 保护级别优先级

当不同的受保护输出指示物理输出使用不同的 CGMS-A 保护级别时,物理输出应使用优先级较高的保护级别,如下表所示。 请注意,此表适用于具有 COPP 语义的受保护输出。

CGMS-A 保护级别值 优先级

DXGKMDT_OPM_CGMSA_OFF (0)

最低优先级 (0)

DXGKMDT_OPM_CGMSA_COPY_FREELY (1)

1

DXGKMDT_OPM_CGMSA_COPY_ONE_GENERATION (3)

2

DXGKMDT_OPM_CGMSA_COPY_NO_MORE (2)

3

DXGKMDT_OPM_CGMSA_COPY_NEVER (4)

最高优先级 (4)

注意 重新分发控件标志 (DXGKMDT_OPM_REDISTRIBUTION_CONTROL_REQUIRED) 不会影响 CGMS-A 优先级值。 例如, (DXGKMDT_OPM_CGMSA_COPY_ONE_GENERATION |DXGKMDT_OPM_REDISTRIBUTION_CONTROL_REQUIRED) 的优先级值与 DXGKMDT_OPM_CGMSA_COPY_ONE_GENERATION 相同。

HDCP 保护级别优先级

当不同的受保护输出指示物理输出使用不同的 HDCP 保护级别时,物理输出应使用优先级较高的保护级别,如下表所示。 请注意,此表适用于具有 COPP 或 OPM 语义的受保护输出。

HDCP 保护级别值 优先级

DXGKMDT_OPM_HDCP_OFF (0)

最低优先级 (0)

DXGKMDT_OPM_HDCP_ON (1)

最高优先级 (1)

DPCP 保护级别优先级

当不同的受保护输出指示物理输出使用不同的 DPCP 保护级别时,物理输出应使用优先级较高的保护级别,如下表所示。 请注意,此表适用于具有 OPM 语义的受保护输出。

DPCP 保护级别值 优先级

DXGKMDT_OPM_DPCP_OFF (0)

最低优先级 (0)

DXGKMDT_OPM_DPCP_ON (1)

最高优先级 (1)