PFND3D11_1DDI_CREATECRYPTOSESSION回调函数 (d3d10umddi.h)

创建加密会话以加密发送到显示微型端口驱动程序的视频内容。

语法

PFND3D11_1DDI_CREATECRYPTOSESSION Pfnd3d111DdiCreatecryptosession;

HRESULT Pfnd3d111DdiCreatecryptosession(
  D3D10DDI_HDEVICE hDevice,
  const D3D11_1DDIARG_CREATECRYPTOSESSION *pCreateData,
  D3D11_1DDI_HCRYPTOSESSION hCryptoSession,
  D3D11_1DDI_HRTCRYPTOSESSION hRTCryptoSession
)
{...}

参数

hDevice

显示设备的句柄(图形上下文)。

pCreateData

指向 D3D11_1DDIARG_CREATECRYPTOSESSION 结构的指针。 此结构指定要创建的加密会话的属性。

hCryptoSession

用于加密会话的驱动程序专用数据的句柄。 有关详细信息,请参阅“备注”部分。

hRTCryptoSession

驱动程序在回调到 Direct3D 运行时时应使用的加密会话的句柄。

返回值

返回以下值之一:

返回代码 说明
S_OK 已成功创建经过身份验证的通道。
D3DDDIERR_DEVICEREMOVED 图形适配器已删除。
D3DDDIERR_UNSUPPORTEDCRYPTO 指定了解码配置文件不支持的加密类型。
E_OUTOFMEMORY 内存无法完成作。

言论

Direct3D 运行时调用 CreateCryptoSession 来创建运行时用来管理会话密钥的加密会话,并为存储在受保护内存中的视频内容执行加密作。

运行时在调用驱动程序的 CalcPrivateCryptoSessionSize 后调用 CreateCryptoSession,以确定驱动程序对加密会话所需的专用数据的大小(以字节为单位)。 运行时为驱动程序分配此专用数据的内存。 驱动程序使用此内存来存储与加密会话相关的专用数据。

当运行时调用 CreateCryptoSession时,它将句柄传递给 hCryptoSession 参数中的专用数据内存。 此句柄实际上是指向内存的指针。

驱动程序必须跟踪用于创建加密会话的显示设备的句柄。 如果这些调用中指定的显示设备不同于用于创建加密会话的显示设备,驱动程序应会失败使用此创建的加密会话的所有后续调用,例如 NegotiateCryptoSessionKeyExchange

如果将 D3D11_1DDIARG_CREATECRYPTOSESSION 结构的 DecodeProfile 成员设置为 NULL_GUID,则加密会话将不用于 DirectX 视频加速(DXVA)解码。 如果未将 DecodeProfile 设置为 NULL_GUID,则如果 CryptoType 成员设置为解码配置文件不支持的加密类型,驱动程序应失败调用 D3DDDIERR_UNSUPPORTEDCRYPTO

要求

要求 价值
最低支持的客户端 Windows 8
支持的最低服务器 Windows Server 2012
目标平台 桌面
标头 d3d10umddi.h (包括 D3d10umddi.h)

另请参阅

CalcPrivateCryptoSessionSize

D3D11_1DDIARG_CREATECRYPTOSESSION

NegotiateCryptoSessionKeyExchange