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,DxgkDdiOPMSetSigningKeyAndSequenceNumbersDxgkDdiOPMGetInformation、DxgkDdiOPMGetCOPPCompatibleInformation、DxgkDdiOPMConfigureProtectedOutput和 DxgkDdiOPMDestroyProtectedOutput。
如果 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 中定义的其他错误代码。
言论
下图显示了显示微型端口驱动程序通常如何实现跨屏模式。
![图演示跨屏模式](images/opm_span.png)
![示意图,说明戏剧模式](images/opm_theater.png)
要求
要求 | 价值 |
---|---|
目标平台 | 桌面 |
标头 | dispmprt.h (包括 Dispmprt.h) |
IRQL | PASSIVE_LEVEL(请参阅“备注”部分) |
另请参阅
DXGKMDT_OPM_VIDEO_OUTPUT_SEMANTICS
DxgkDdiOPMConfigureProtectedOutput
DxgkDdiOPMDestroyProtectedOutput