Compartir a través de


PFND3DDDI_DECRYPTIONBLT función de devolución de llamada (d3dumddi.h)

La función DecryptionBlt escribe datos en una superficie protegida.

Sintaxis

PFND3DDDI_DECRYPTIONBLT Pfnd3dddiDecryptionblt;

HRESULT Pfnd3dddiDecryptionblt(
  HANDLE hDevice,
  const D3DDDIARG_DECRYPTIONBLT *unnamedParam2
)
{...}

Parámetros

hDevice

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

unnamedParam2

pData [in]

Puntero a una estructura de D3DDDIARG_DECRYPTIONBLT que describe los parámetros de la operación de transferencia de bloques de bits (bitblt) descifrado.

Valor devuelto

DecryptionBlt devuelve uno de los siguientes valores:

Código devuelto Descripción
S_OK La operación bitblt descifrada se realiza correctamente.
E_OUTOFMEMORY DecryptionBlt no pudo asignar la memoria necesaria para que se complete.
D3DDDIERR_NOTAVAILABLE El controlador no admite la función DecryptionBlt.

Comentarios

El hardware y los controladores pueden admitir opcionalmente DecryptionBlt para algunos tipos criptográficos .

Si la aplicación que realiza la llamada requiere el uso de una clave de contenido, la aplicación usa la clave de contenido para cifrar los datos y la clave de sesión para cifrar la clave de contenido antes de pasar la clave de contenido en el bloque de memoria a la que apunta el miembro pContentKey de D3DDDIARG_DECRYPTIONBLT . Si pContentKey es NULL, indica que la aplicación usó la clave de sesión para cifrar los datos.

Si la función CreateCryptoSession del controlador creó previamente la sesión de cifrado con el miembro CryptoType de la estructura de D3DDDIARG_CREATECRYPTOSESSION establecida en D3DCRYPTOTYPE_AES128_CTR, el miembro pIV de D3DDDIARG_DECRYPTIONBLT apunta a la estructura DXVADDI_PVP_HW_IV y contiene el vector de inicialización que la aplicación usó para cifrar el búfer. La función DecryptionBlt del controlador debe producir un error si determina que el vector de inicialización se usó anteriormente para la misma clave de contenido (o clave de sesión si no se usa la clave de contenido). La aplicación debe incrementar el miembro IV de la estructura DXVADDI_PVP_HW_IV para cada búfer que cifra la aplicación. Por lo tanto, la función DecryptionBlt del controlador puede producir un error si el miembro IV es menor o igual que el valor iv anterior que se pasó a DecryptionBlt.

Si el controlador y el hardware admiten búferes parcialmente cifrados, el miembro pEncryptedBlockInfo de D3DDDIARG_DECRYPTIONBLT indica las partes del búfer que están cifradas y las partes que no están cifradas. Si se cifra todo el búfer, pEncryptedBlockInfo debe ser NULL.

DecryptionBlt no puede escribir subctángulos.

El tiempo de ejecución de Direct3D comprueba que la superficie de origen especificada por el miembro SrcSubResourceIndex de la estructura D3DDDIARG_DECRYPTIONBLT está en memoria del sistema y que no se realiza ninguna conversión de espacio de color, etc. Una aplicación debe asegurarse de que el búfer de memoria del sistema está alineado correctamente y que el tamaño del búfer coincide con la superficie de destino. El controlador debe comprobar la alineación de memoria y el tamaño del búfer (miembro SrcResourceSize de D3DDDIARG_DECRYPTIONBLT) y producir un error si estas condiciones no son correctas.

Requisitos

Requisito Value
Cliente mínimo compatible DecryptionBlt se admite a partir del sistema operativo Windows 7.
Plataforma de destino Escritorio
Encabezado d3dumddi.h (incluya D3dumddi.h)

Consulte también

CreateCryptoSession

D3DDDIARG_CREATECRYPTOSESSION

D3DDDIARG_DECRYPTIONBLT

D3DDDI_DEVICEFUNCS