检索有关受保护输出的 COPP 兼容信息
显示微型端口驱动程序可以接收请求,以检索与图形适配器的物理输出连接器关联的受保护输出的 COPP 兼容信息。 显示微型端口驱动程序的 DxgkDdiOPMGetCOPPCompatibleInformation 函数在包含信息请求的 Parameters 参数中传递指向DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS结构的指针。 DxgkDdiOPMGetCOPPCompatibleInformation 将所需信息写入 RequestedInformation 参数指向的DXGKMDT_OPM_REQUESTED_INFORMATION结构。 DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS 的 guidInformation 和 abParameters 成员指定信息请求。 根据信息请求,显示微型端口驱动程序应使用所需信息填充 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 的 abRequestedInformation 成员指向该结构。 在驱动程序指定 cbRequestedInformationSize (例如, sizeof (DXGKMDT_OPM_STANDARD_INFORMATION) ) 和 abRequestedInformation 成员DXGKMDT_OPM_REQUESTED_INFORMATION,驱动程序必须计算DXGKMDT_OPM_REQUESTED_INFORMATION数据的 OMAC) (CBC) 模式消息身份验证 (代码,并且必须在 DXGKMDT_OPM_REQUESTED_INFORMATION 的 omac 成员中设置此 OMAC 。 有关计算 OMAC 的详细信息,请参阅 OMAC-1 算法。
注意在 DxgkDdiOPMGetCOPPCompatibleInformation 返回之前,显示微型端口驱动程序必须验证在 DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS 的 ulSequenceNumber 成员中指定的序列号是否与驱动程序当前存储的序列号匹配。 然后,驱动程序必须递增存储的序列号。
注意 驱动程序必须在 DXGKMDT_OPM_STANDARD_INFORMATION、DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT、DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING 或 DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION 的 rnRandomNumber 成员中返回一个 128 位加密安全的随机数。 随机数由发送应用程序生成,并在 DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS 的 rnRandomNumber 成员中提供。
驱动程序为指示的请求返回以下信息:
对于在 guidInformation 成员中设置且在 DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS 的 abParameters 成员中未定义的DXGKMDT_OPM_GET_SUPPORTED_PROTECTION_TYPES,驱动程序指示可用的保护机制类型。 为了指示可用的保护类型,驱动程序从 DXGKMDT_OPM_STANDARD_INFORMATION 的 ulInformation 成员中的 DXGKMDT_OPM_PROTECTION_TYPE 枚举返回值的有效按位 OR 组合。 DXGKMDT_OPM_PROTECTION_TYPE_ACP、DXGKMDT_OPM_PROTECTION_TYPE_CGMSA和DXGKMDT_OPM_PROTECTION_TYPE_COPP_COMPATIBLE_HDCP值有效。
对于在 guidInformation 中设置DXGKMDT_OPM_GET_CONNECTOR_TYPE,在 abParameters 中未定义,驱动程序指示连接器类型。 为了指示连接器类型,驱动程序从 DXGKMDT_OPM_STANDARD_INFORMATION 的 ulInformation 成员中的 D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY 枚举返回值的有效按位 OR 组合。
对于在 guidInformation 中设置的DXGKMDT_OPM_GET_VIRTUAL_PROTECTION_LEVEL或DXGKMDT_OPM_GET_ACTUAL_PROTECTION_LEVEL以及 abParameters 中设置的保护类型,驱动程序在 DXGKMDT_OPM_STANDARD_INFORMATION 的 ulInformation 成员中返回保护级别值。 如果保护类型为DXGKMDT_OPM_PROTECTION_TYPE_ACP,则保护级别值来自 DXGKMDT_OPM_ACP_PROTECTION_LEVEL 枚举。 如果保护类型为DXGKMDT_OPM_PROTECTION_TYPE_CGMSA,则保护级别值来自 DXGKMDT_OPM_CGMSA 枚举。 如果保护类型为DXGKMDT_OPM_PROTECTION_TYPE_COPP_COMPATIBLE_HDCP,则保护级别值来自 DXGKMDT_OPM_HDCP_PROTECTION_LEVEL 枚举。
DXGKMDT_OPM_GET_VIRTUAL_PROTECTION_LEVEL请求返回受保护输出的当前设置的保护级别。 DXGKMDT_OPM_GET_ACTUAL_PROTECTION_LEVEL请求返回与受保护输出关联的物理连接器当前设置的保护级别。
对于在 guidInformation 中设置DXGKMDT_OPM_GET_ADAPTER_BUS_TYPE,在 abParameters 中未定义,驱动程序标识将图形适配器连接到母板芯片集北桥的总线类型。 为了标识总线的类型,驱动程序从 DXGKMDT_OPM_STANDARD_INFORMATION 的 ulInformation 成员中的 DXGKMDT_OPM_BUS_TYPE_AND_IMPLEMENTATION 枚举返回值的有效按位 OR 组合。
在使用公开提供的规范和标准连接器类型的扩展总线上没有图形适配器和其他子系统之间的接口信号时,驱动程序只能将 DXGKMDT_OPM_COPP_COMPATIBLE_BUS_TYPE_INTEGRATED (0x80000000) 值与其中一个总线类型值组合在一起。 内存总线已从此定义中排除。
对于在 guidInformation 中设置的DXGKMDT_OPM_GET_ACTUAL_OUTPUT_FORMAT,在 abParameters 中未定义,驱动程序在 DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT 的成员中返回信息,该信息描述如何格式化通过与受保护输出关联的物理连接器的信号。
对于在 guidInformation 中设置的DXGKMDT_OPM_GET_ACP_AND_CGMSA_SIGNALING,在 abParameters 中未定义,驱动程序在 DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING 的成员中返回信息,该信息描述如何保护通过与受保护输出关联的物理连接器传递的信号。
对于在 guidInformation 中设置和 abParameters 中未定义的DXGKMDT_OPM_GET_CONNECTED_HDCP_DEVICE_INFORMATION,驱动程序在包含高带宽数字内容保护 (HDCP) 信息的 DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION 成员中返回信息。