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 la estructura 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 .

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

None

Observaciones

Para el cifrado 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 miembro IV de esta estructura en un número aleatorio. Para cada IV posterior, el autor de la llamada incrementa el miembro IV , asegurándose de que el valor siempre aumenta. Este procedimiento permite a la aplicación validar que el mismo IV nunca se usa más de una vez con el mismo par de claves.

En el caso de otros tipos de cifrado, se puede usar una estructura diferente o el cifrado podría no usar un IV.

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

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8
Servidor mínimo compatible Windows Server 2012
Plataforma de destino Escritorio
Encabezado d3d10umddi.h (incluya D3d10umddi.h)

Consulte también

D3D11_1DDI_AES_CTR_IV

D3D11_1DDI_ENCRYPTED_BLOCK_INFO

D3D11_1DDI_VIDEO_CONTENT_PROTECTION_CAPS