Compartir a través de


PFND3D11_1DDI_DECRYPTIONBLT función de devolución de llamada (d3d10umddi.h)

Escribe datos cifrados en una superficie protegida. Solo se llama a esta función si D3D11_1DDI_CONTENT_PROTECTION_CAPS_DECRYPTION_BLT se establece en el miembro caps de de la estructura de D3D11_1DDI_VIDEO_CONTENT_PROTECTION_CAPS.

Sintaxis

PFND3D11_1DDI_DECRYPTIONBLT Pfnd3d111DdiDecryptionblt;

void Pfnd3d111DdiDecryptionblt(
  D3D10DDI_HDEVICE hDevice,
  D3D11_1DDI_HCRYPTOSESSION hCryptoSession,
  D3D10DDI_HRESOURCE hSrcResource,
  D3D10DDI_HRESOURCE hDstResource,
  const D3D11_1DDI_ENCRYPTED_BLOCK_INFO *pEncryptedBlockInfo,
  UINT ContentKeySize,
  const VOID *pContentKey,
  UINT IVSize,
  const VOID *pIV
)
{...}

Parámetros

hDevice

Identificador del dispositivo de visualización (contexto de gráficos).

hCryptoSession

Identificador de los datos privados del controlador para la sesión criptográfica. El tiempo de ejecución de Direct3D creó este identificador y se pasó al controlador en la llamada a la función createCryptoSession de.

hSrcResource

Identificador del recurso que contiene los datos de origen.

hDstResource

Puntero al recurso donde se van a escribir los datos cifrados.

pEncryptedBlockInfo

Puntero a una estructura de D3D11_1DDI_ENCRYPTED_BLOCK_INFO que describe las partes del búfer que se cifran.

Nota Si se cifra todo el búfer, pEncryptedBlockinfo debe establecerse en NULL.
 

ContentKeySize

Tamaño, en bytes, de la clave de contenido.

pContentKey

Puntero a un bloque de memoria que contiene la clave de contenido necesaria para descifrar los datos de transferencia de bloques de bits (bitblt).

Si pContentKey no está establecido en NULL, los datos del búfer se cifran mediante la clave de contenido especificada. Los datos de esta clave se cifran mediante la clave de sesión con el algoritmo AES-ECB.

Si pContentKey es NULL, el adaptador de gráficos no requiere una clave de contenido independiente para descifrar los datos. En este caso, la clave de sesión se usa para descifrar los datos.

IVSize

Tamaño, en bytes, del vector de inicialización (IV).

pIV

Puntero a un bloque de memoria que contiene el vector de inicialización necesario para descifrar los datos bitblt. Para obtener más información, vea la sección Comentarios.

nota  

Si pIV es NULL, el adaptador de gráficos no requiere un vector de inicialización independiente para descifrar los datos. Es decir, la clave de sesión se usa para descifrar los datos.

 

Valor devuelto

Ninguno

Observaciones

Para el cifrado de AES-CTR de 128 bits, el parámetro pIV apunta a una estructura de D3D11_1DDI_AES_CTR_IV asignada por la aplicación. Sin embargo, el controlador o el adaptador de gráficos rellenan el contenido real de esta estructura. Cuando se genera el primer IV, el controlador o el adaptador inicializa el IV miembro de esta estructura en un número aleatorio. Para cada IV posterior, el autor de la llamada incrementa la iv miembro, asegurándose de que el valor siempre aumenta. Este procedimiento permite a la aplicación validar que nunca se usa el mismo IV más de una vez con el mismo par de claves.

Para otros tipos de cifrado, se puede usar una estructura diferente o es posible que el cifrado no use un IV.

Nota Esta función no respeta un predicado direct3D versión 11 que se puede haber establecido.
 

Requisitos

Requisito Valor
cliente mínimo admitido Windows 8
servidor mínimo admitido Windows Server 2012
de la plataforma de destino de Escritorio
encabezado de d3d10umddi.h (incluya D3d10umddi.h)

Consulte también

D3D11_1DDI_AES_CTR_IV

D3D11_1DDI_ENCRYPTED_BLOCK_INFO

D3D11_1DDI_VIDEO_CONTENT_PROTECTION_CAPS