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.
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.
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.
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) |