Compartir a través de


Método ID3D11VideoContext::EncryptionBlt (d3d11.h)

Lee los datos cifrados de una superficie protegida.

Sintaxis

void EncryptionBlt(
  [in] ID3D11CryptoSession *pCryptoSession,
  [in] ID3D11Texture2D     *pSrcSurface,
  [in] ID3D11Texture2D     *pDstSurface,
  [in] UINT                IVSize,
  [in] void                *pIV
);

Parámetros

[in] pCryptoSession

Puntero a la interfaz ID3D11CryptoSession de la sesión criptográfica.

[in] pSrcSurface

Puntero a la interfaz ID3D11Texture2D de la superficie protegida.

[in] pDstSurface

Puntero a la interfaz ID3D11Texture2D de la superficie que recibe los datos cifrados.

[in] IVSize

Tamaño del búfer pIV , en bytes.

[in] pIV

Puntero a un búfer que recibe el vector de inicialización (IV). El autor de la llamada asigna este búfer, pero el controlador genera el IV.

Para el cifrado AES-CTR de 128 bits, pIV apunta a una estructura de D3D11_AES_CTR_IV . Cuando el controlador genera el primer IV, inicializa la estructura en un número aleatorio. Para cada IV posterior, el controlador simplemente incrementa el miembro IV de la estructura, asegurándose de que el valor siempre aumenta. La aplicación puede validar que el mismo IV nunca se usa más de una vez con el mismo par de claves.

Valor devuelto

Si este método se realiza correctamente, devuelve S_OK. De lo contrario, devuelve un código de error de HRESULT.

Comentarios

No todos los controladores admiten este método. Para consultar las funcionalidades del controlador, llame a ID3D11VideoDevice::GetContentProtectionCaps y compruebe la marca de D3D11_CONTENT_PROTECTION_CAPS_ENCRYPTED_READ_BACK en el miembro Caps de la estructura D3D11_VIDEO_CONTENT_PROTECTION_CAPS .

Algunos controladores pueden requerir una clave independiente para descifrar los datos que se leen. Para comprobar este requisito, llame a GetContentProtectionCaps y compruebe la marca D3D11_CONTENT_PROTECTION_CAPS_ENCRYPTED_READ_BACK_KEY . Si esta marca está presente, llame a ID3D11VideoContext::GetEncryptionBltKey para obtener la clave de descifrado.

Este método tiene las siguientes limitaciones:

  • No se admite la lectura de subctángulos.
  • No se admite la lectura de superficies parcialmente cifradas.
  • La superficie protegida debe ser una superficie sin formato fuera de la pantalla o un destino de representación.
  • La superficie de destino debe ser un recurso de D3D11_USAGE_STAGING .
  • La superficie protegida no puede ser multimuestreo.
  • No se admite la conversión de espacio de colores y de extensión.

Esta función no respeta un predicado D3D11 que se puede haber establecido.

Si la aplicación usa consultas D3D11, es posible que esta función no se tenga en cuenta con D3D11_QUERY_EVENT y D3D11_QUERY_TIMESTAMP cuando se usan niveles de características inferiores a 11. D3D11_QUERY_PIPELINE_STATISTICS no incluirá esta función para ningún nivel de característica.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8 [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2012 [aplicaciones de escritorio | Aplicaciones para UWP]
Plataforma de destino Windows
Encabezado d3d11.h

Consulte también

ID3D11VideoContext