报告受保护输出的状态

外部事件可能会更改应用于连接器的保护的性质,甚至可以修改连接器的类型。 每当驱动程序收到对 DxgkDdiOPMGetInformationDxgkDdiOPMGetCOPPCompatibleInformation 函数的调用时,显示微型端口驱动程序必须将这些事件报告给 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_STANDARD_INFORMATION 结构的 abRequestedInformation 成员中的 DXGKMDT_OPM_STANDARD_INFORMATION、DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT、DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING 或 DXGKMDT_OPM_REQUESTED_INFORMATION DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION 结构的指针。 指向 DXGKMDT_OPM_REQUESTED_INFORMATION指针通过 DxgkDdiOPMGetInformationDxgkDdiOPMGetCOPPCompatibleInformationRequestedInformation 参数返回。

例如,考虑两个媒体播放应用程序: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 标志并相应地操作。 同样,在连接器再次断开DXGKMDT_OPM_STATUS_LINK_LOST,应用程序 B 不应再次收到该标志。