DXGKDDI_OPM_CREATE_PROTECTED_OUTPUT回调函数 (dispmprt.h)

DxgkDdiOPMCreateProtectedOutput 函数使用认证输出保护协议 (COPP) 或 OPM 语义创建新的受保护的输出对象。

语法

DXGKDDI_OPM_CREATE_PROTECTED_OUTPUT DxgkddiOpmCreateProtectedOutput;

NTSTATUS DxgkddiOpmCreateProtectedOutput(
  [in]  PVOID MiniportDeviceContext,
  [in]  D3DDDI_VIDEO_PRESENT_TARGET_ID VidPnTargetId,
  [in]  DXGKMDT_OPM_VIDEO_OUTPUT_SEMANTICS NewVideoOutputSemantics,
  [out] PHANDLE NewProtectedOutputHandle
)
{...}

参数

[in] MiniportDeviceContext

与显示适配器关联的上下文块的句柄。 以前,显示微型端口驱动程序的 DxgkDdiAddDevice 函数为 DirectX 图形内核子系统提供了此句柄。

[in] VidPnTargetId

一个整数,用于唯一标识与新的受保护输出对象相对应的视频存在目标。 每个视频存在的目标必须对应于一个物理监视器连接器。 如果 VidPnTargetId 对应于多个物理监视器连接器, 则 DxgkDdiOPMCreateProtectedOutput 应返回STATUS_GRAPHICS_OPM_SPANNING_MODE_ENABLED或STATUS_GRAPHICS_OPM_THEATER_MODE_ENABLED错误代码。

[in] NewVideoOutputSemantics

一个DXGKMDT_OPM_VIDEO_OUTPUT_SEMANTICS类型的值,用于确定新的受保护输出是具有 COPP 还是 OPM 语义。

[out] NewProtectedOutputHandle

指向变量的指针,该变量接收新的受保护输出对象的句柄(如果 DxgkDdiOPMCreateProtectedOutput 成功返回)。 DirectX 图形内核子系统在调用显示微型端口驱动程序的 DxgkDdiOPMGetRandomNumber 时传递此句柄, DxgkDdiOPMSetSigningKeyAndSequenceNumbersDxgkDdiOPMGetInformationDxgkDdiOPMGetCOPPCompatibleInformationDxgkDdiOPMConfigureProtectedOutputDxgkDdiOPMDestroyProtectedOutput

如果 DxgkDdiOPMCreateProtectedOutput 失败,则变量的值保持不变。

返回值

DxgkDdiOPMCreateProtectedOutput 返回以下值之一。

返回代码 说明
STATUS_SUCCESS 函数已成功创建新的受保护的输出对象。
STATUS_GRAPHICS_OPM_NOT_SUPPORTED 显示微型端口驱动程序不支持 OPM,因为硬件供应商从未签署 OPM 许可协议,或者微型端口驱动程序的图形硬件不符合 OPM 规则。
STATUS_GRAPHICS_COPP_NOT_SUPPORTED 显示微型端口驱动程序不支持 COPP,因为硬件供应商从未签署过 COPP 许可协议,或者微型端口驱动程序的图形硬件不符合 COPP 规则。
STATUS_NO_MEMORY DxgkDdiOPMCreateProtectedOutput 无法分配完成它所需的内存。
STATUS_GRAPHICS_OPM_SPANNING_MODE_ENABLED DxgkDdiOPMCreateProtectedOutput 无法创建受保护的输出,因为视频当前目标处于跨屏模式。 当视频存在目标处于跨屏模式时,它对应于多个物理监视器连接器,并且每个连接器显示帧缓冲区的单独部分。 有关显示微型端口驱动程序通常如何实现跨屏模式的关系图,请参阅备注部分。 显示微型端口驱动程序通知操作系统帧缓冲区与特定监视器的对应方式。 帧缓冲区的左半部分显示在一台监视器上,帧缓冲区的右半部分显示在另一台监视器上。
STATUS_GRAPHICS_OPM_THEATER_MODE_ENABLED DxgkDdiOPMCreateProtectedOutput 无法创建受保护的输出,因为视频当前目标处于影院模式。 当视频当前目标处于影院模式时,它对应于两个物理监视器连接器:一个连接器显示整个帧缓冲区,另一个连接器仅显示帧缓冲区的一部分。 影院模式也称为镜像模式。 有关显示微型端口驱动程序通常如何实现影院模式的示意图,请参阅“备注”部分。 显示微型端口驱动程序通知操作系统帧缓冲区与特定监视器的对应方式。 整个帧缓冲区显示在一台监视器上,而只有一部分帧缓冲区显示在另一台监视器上。

此函数还可能返回 Ntstatus.h 中定义的其他错误代码。

注解

下图显示了显示微型端口驱动程序通常如何实现跨屏模式。

说明跨屏模式的关系图 下图显示了显示微型端口驱动程序通常如何实现影院模式。 说明剧院模式 *DxgkDdiOPMCreateProtectedOutput* 的示意图应设为可分页。

要求

要求
目标平台 桌面
标头 dispmprt.h (包括 Dispmprt.h)
IRQL PASSIVE_LEVEL (请参阅备注部分)

另请参阅

DXGKMDT_OPM_VIDEO_OUTPUT_SEMANTICS

DxgkDdiAddDevice

DxgkDdiOPMConfigureProtectedOutput

DxgkDdiOPMDestroyProtectedOutput

DxgkDdiOPMGetCOPPCompatibleInformation

DxgkDdiOPMGetInformation

DxgkDdiOPMGetRandomNumber

DxgkDdiOPMSetSigningKeyAndSequenceNumbers