报告受保护输出的状态

外部事件可以更改应用于连接器的保护的性质,甚至可以修改连接器的类型。 每当驱动程序收到对其 DxgkDdiOPMGetInformation 或 DxgkDdiOPMGetCOPPCompatibleInformation 函数的调用时,显示微型端口驱动程序都必须向 OPM 应用程序报告这些事件。 显示微型端口驱动程序必须报告以下外部事件,方法是仅在事件发生后下次调用 DxgkDdiOPMGetInformationDxgkDdiOPMGetCOPPCompatibleInformation 时从 DXGKMDT_OPM_STATUS 枚举返回指定的状态标志:

连接正常工作
如果计算机与显示设备之间的连接正常工作,则显示微型端口驱动程序应在DXGKMDT_OPM_STANDARD_INFORMATION、DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT、DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING或DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION结构的 ulStatusFlags 成员中设置DXGKMDT_OPM_STATUS_NORMAL状态标志。

连接完整性
如果计算机和显示设备断开连接,显示微型端口驱动程序应在DXGKMDT_OPM_STANDARD_INFORMATION、DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT、DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING或DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION结构的 ulStatusFlags 成员中设置DXGKMDT_OPM_STATUS_LINK_LOST状态标志。

连接器重新配置
如果最终用户导致物理连接器的配置发生更改,则显示微型端口驱动程序应在 DXGKMDT_OPM_STANDARD_INFORMATION、DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT、DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING 或 DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION 结构的 ulStatusFlags 成员中设置DXGKMDT_OPM_STATUS_RENEGOTIATION_REQUIRED状态标志。

篡改
如果篡改了图形适配器或适配器的显示微型端口驱动程序,则显示微型端口驱动程序应在DXGKMDT_OPM_STANDARD_INFORMATION、DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT、DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING或DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION结构的 ulStatusFlags 成员中设置DXGKMDT_OPM_STATUS_TAMPERING_DETECTED状态标志。

吊销的 HDCP 设备
如果吊销的高带宽数字内容保护 (HDCP) 设备直接或间接连接到连接器,并且启用了 HDCP,则显示微型端口驱动程序应在DXGKMDT_OPM_STANDARD_INFORMATION或DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT结构的 ulStatusFlags 成员中设置DXGKMDT_OPM_STATUS_REVOKED_HDCP_DEVICE_ATTACHED状态标志。 如果未启用 HDCP,则驱动程序不需要设置此状态标志。 驱动程序仅通过调用其 DxgkDdiOPMGetInformation 函数来设置此状态值,以确定是否启用了 HDCP。

显示微型端口驱动程序返回指向DXGKMDT_OPM_REQUESTED_INFORMATION结构的 abRequestedInformation 成员中的DXGKMDT_OPM_STANDARD_INFORMATION、 DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT、DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING或DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION 结构的指针。 指向DXGKMDT_OPM_REQUESTED_INFORMATION的指针通过 DxgkDdiOPMGetInformationDxgkDdiOPMGetCOPPCompatibleInformation 的 RequestedInformation 参数返回。

例如,考虑两个媒体播放应用程序 A 和 B。每个应用程序通过 OPM 控制将计算机连接到显示监视器的连接器的 HDCP 保护级别。 每个应用程序控制其自己唯一的受保护输出。 如果连接器拔出,则下次应用程序启动对其受保护输出的 DxgkDdiOPMGetInformationDxgkDdiOPMGetCOPPCompatibleInformation 请求时,显示微型端口驱动程序应返回DXGKMDT_OPM_STATUS_LINK_LOST状态标志。

假设应用程序 A 是第一个在其受保护输出上启动对 DxgkDdiOPMGetInformationDxgkDdiOPMGetCOPPCompatibleInformation 的 调用。 然后,应用程序 A 接收DXGKMDT_OPM_STATUS_LINK_LOST标志并相应地执行。 如果应用程序 A 启动后续 的 DxgkDdiOPMGetInformationDxgkDdiOPMGetCOPPCompatibleInformation 调用,则它不应接收DXGKMDT_OPM_STATUS_LINK_LOST标志,除非连接器再次拔出。 当应用程序 B 在其受保护的输出上启动对 DxgkDdiOPMGetInformationDxgkDdiOPMGetCOPPCompatibleInformation 的 调用时,它将接收DXGKMDT_OPM_STATUS_LINK_LOST标志并相应地执行操作。 同样,在连接器再次拔出之前,应用程序 B 不应再次接收DXGKMDT_OPM_STATUS_LINK_LOST标志。