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

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

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