PFND3D11_1DDI_ENCRYPTIONBLT回调函数 (d3d10umddi.h)

从受保护的图面读取加密数据。

语法

PFND3D11_1DDI_ENCRYPTIONBLT Pfnd3d111DdiEncryptionblt;

void Pfnd3d111DdiEncryptionblt(
  D3D10DDI_HDEVICE hDevice,
  D3D11_1DDI_HCRYPTOSESSION hCryptoSession,
  D3D10DDI_HRESOURCE hSrcResource,
  D3D10DDI_HRESOURCE hDstResource,
  UINT IVSize,
  const VOID *pIV
)
{...}

参数

hDevice

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

hCryptoSession

加密会话的驱动程序专用数据的句柄。 此句柄由 Direct3D 运行时创建,并在调用 CreateCryptoSession 函数时传递给驱动程序。

hSrcResource

包含源数据的资源的句柄。

hDstResource

指向要在其中写入加密数据的资源的指针。

IVSize

初始化向量的大小(以字节为单位) (IV) 。

pIV

指向内存块的指针,该内存块包含加密 bitblt 数据所需的初始化向量。 有关详细信息,请参见“备注”部分。

注意  

如果 pIV 为 NULL,则图形适配器不需要单独的初始化向量来加密数据。 也就是说,会话密钥用于加密数据。

 

返回值

备注

此函数具有以下限制:

  • 函数无法读回子对象或部分加密的图面。
  • 函数无法读回部分加密的缓冲区。 许多基于硬件的加密解决方案不允许从受保护的内存进行非加密读取。
  • 受保护的表面必须是屏幕外普通表面或呈现目标。
  • 如前所述,目标图面必须是使用正确对齐方式创建的系统内存图面。
  • 受保护的图面不能进行多重采样。
  • 函数不支持拉伸或颜色空间转换。
对于 128 位 AES-CTR 加密, pIV 参数指向应用程序分配 的D3D11_1DDI_AES_CTR_IV 结构。 但是,此结构的实际内容由驱动程序或图形适配器填充。 生成第一个 IV 时,驱动程序或适配器将此结构的 IV 成员初始化为随机数。 对于每个后续 IV,调用方递增 IV 成员,确保值始终增加。 此过程使应用程序能够验证同一个 IV 永远不会使用同一密钥对多次。

对于其他加密类型,可能使用不同的结构,或者加密可能不使用 IV。

注意 此函数不接受可能已设置的 Direct3D 版本 11 谓词。
 

要求

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

另请参阅

CreateCryptoSession

D3D11_1DDI_AES_CTR_IV