DXGKDDI_OPM_GET_COPP_COMPATIBLE_INFORMATION回调函数 (dispmprt.h)
DXGKDDI_OPM_GET_COPP_COMPATIBLE_INFORMATION 函数从给定的受保护输出对象中检索与认证输出保护协议(COPP)兼容的信息。
语法
DXGKDDI_OPM_GET_COPP_COMPATIBLE_INFORMATION DxgkddiOpmGetCoppCompatibleInformation;
NTSTATUS DxgkddiOpmGetCoppCompatibleInformation(
[in] PVOID MiniportDeviceContext,
[in] HANDLE ProtectedOutputHandle,
[in] const DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS *Parameters,
[out] PDXGKMDT_OPM_REQUESTED_INFORMATION RequestedInformation
)
{...}
参数
[in] MiniportDeviceContext
与显示适配器关联的上下文块的句柄。 以前,显示微型端口驱动程序的 DxgkDdiAddDevice 函数向 DirectX 图形内核子系统提供了此句柄。
[in] ProtectedOutputHandle
受保护输出对象的句柄。 DxgkDdiOPMCreateProtectedOutput 函数创建受保护的输出对象,并将句柄返回到该对象。 与此句柄对应的受保护输出对象应具有 COPP 语义。
[in] Parameters
指向 DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS 结构的指针,该结构包含从受保护输出对象中检索其句柄在 ProtectedOutputHandle 参数中指定的与 COPP 兼容的信息的类型。 DxgkDdiOPMGetCOPPCompatibleInformation 确定参数是否包含来自间接创建受保护输出对象的应用程序的有效请求。 有关详细信息,请参阅“备注”部分。
[out] RequestedInformation
指向 DXGKMDT_OPM_REQUESTED_INFORMATION 结构的指针,如果 DxgkDdiOPMGetCOPPCompatibleInformation 成功返回,则接收受保护输出对象的 COPP 兼容信息。
如果 DxgkDdiOPMGetCOPPCompatibleInformation 失败,则 RequestedInformation 指向的值保持不变。
返回值
DxgkDdiOPMGetCOPPCompatibleInformation 返回STATUS_SUCCESS或 Ntstatus.h 错误代码。
言论
仅当输出具有 COPP 语义时,DirectX 图形内核子系统才应调用 DxgkDdiOPMGetCOPPCompatibleInformation。
在 DirectX 图形内核子系统在调用 DxgkDdiOPMGetCOPPCompatibleInformation(DirectX 图形内核)时将受保护的输出句柄传递给 ProtectedOutputHandle 参数之前 子系统始终将受保护的输出句柄传递给 DxgkDdiOPMSetSigningKeyAndSequenceNumbers,DxgkDdiOPMGetRandomNumber 函数。
以下是与 DxgkDdiOPMGetCOPPCompatibleInformation 相关的一些事实,这些事实与 DxgkDdiOPMGetInformation 函数无关:
DirectX 图形内核子系统只能使用 COPP 语义将句柄传递给受保护的输出。
参数 指向的 DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS 结构未签名。
DirectX 图形内核子系统可以在 guidInformation DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS 成员中传递DXGKMDT_OPM_GET_ACP_AND_CGMSA_SIGNALING和DXGKMDT_OPM_GET_CONNECTED_HDCP_DEVICE_INFORMATION GUID。
DirectX 图形内核子系统无法传递 guidInformation 成员DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS中的DXGKMDT_OPM_GET_CURRENT_HDCP_SRM_VERSION GUID。
DirectX 图形内核子系统可以在 DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS 的 abParameters 成员的前 4 个字节中指定DXGKMDT_OPM_PROTECTION_TYPE_COPP_COMPATIBLE_HDCP,以及DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS的 guidInformation 成员中的 DXGKMDT_OPM_GET_VIRTUAL_PROTECTION_LEVEL 或 DXGKMDT_OPM_GET_ACTUAL_PROTECTION_LEVEL GUID。
DirectX 图形内核子系统无法在 abParameters 成员的前 4 个字节中指定DXGKMDT_OPM_PROTECTION_TYPE_HDCP,DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS的 guidInformation 成员中的 DXGKMDT_OPM_GET_VIRTUAL_PROTECTION_LEVEL 或 DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS DXGKMDT_OPM_GET_ACTUAL_PROTECTION_LEVEL GUID。
调用其 DxgkDdiOPMGetCOPPCompatibleInformation 函数时,驱动程序必须执行以下序列。
验证传递给 DxgkDdiOPMGetCOPPCompatibleInformation 的 ProtectedOutputHandle 参数的受保护输出句柄是否具有 COPP 语义。
检索请求的信息。
将 DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERSrnRandomNumber 成员指定的随机数复制到DXGKMDT_OPM_STANDARD_INFORMATION、DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT、DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING或DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION结构的 rnRandomNumber 成员。 所使用的结构取决于调用方请求的信息类型。 该结构在 abRequestedInformationDXGKMDT_OPM_REQUESTED_INFORMATION 结构的成员中设置,RequestedInformation 参数指向该成员。
对 DXGKMDT_OPM_REQUESTED_INFORMATION 结构进行签名,并将签名置于DXGKMDT_OPM_REQUESTED_INFORMATION 成员。 AES 块密码和 OMAC-1 签名算法应用于对结构进行签名。 有关 AES 的信息,请参阅 RSA 实验室 网站。 有关 OMAC-1 的信息,请参阅 DXGKMDT_OPM_OMAC 参考页。
最初,DirectX 图形内核子系统调用 DxgkDdiOPMGetCOPPCompatibleInformation 检索有关输出的信息,然后调用 DxgkDdiOPMConfigureProtectedOutput 一次或多次配置输出。 随后,DirectX 图形内核子系统调用 DxgkDdiOPMGetCOPPCompatibleInformation,而无需同时调用 DxgkDdiOPMConfigureProtectedOutput。
应 DxgkDdiOPMGetCOPPCompatibleInformation 进行分页。
要求
要求 | 价值 |
---|---|
目标平台 | 桌面 |
标头 | dispmprt.h (包括 Dispmprt.h) |
IRQL | PASSIVE_LEVEL(请参阅“备注”部分) |
另请参阅
DxgkDdiOPMConfigureProtectedOutput
DxgkDdiOPMCreateProtectedOutput
DxgkDdiOPMSetSigningKeyAndSequenceNumbers