PFND3DDDI_DECRYPTIONBLT fonction de rappel (d3dumddi.h)

La fonction DecryptionBlt écrit des données dans une surface protégée.

Syntaxe

PFND3DDDI_DECRYPTIONBLT Pfnd3dddiDecryptionblt;

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

Paramètres

hDevice

Handle de l’appareil d’affichage (contexte graphique).

unnamedParam2

pData [in]

Pointeur vers une structure D3DDDIARG_DECRYPTIONBLT qui décrit les paramètres de l’opération de transfert de bloc de bits (bitblt) déchiffrée.

Valeur retournée

DecryptionBlt retourne l’une des valeurs suivantes :

Code de retour Description
S_OK L’opération bitblt déchiffrée est effectuée avec succès.
E_OUTOFMEMORY DecryptionBlt n’a pas pu allouer la mémoire nécessaire pour qu’il se termine.
D3DDDIERR_NOTAVAILABLE Le pilote ne prend pas en charge la fonction DecryptionBlt.

Remarques

Le matériel et les pilotes peuvent éventuellement prendre en charge DecryptionBlt pour certains types de chiffrement.

Si l’application appelante nécessite l’utilisation d’une clé de contenu, l’application utilise la clé de contenu pour chiffrer les données et la clé de session pour chiffrer la clé de contenu avant de passer la clé de contenu dans le bloc de mémoire vers lequel pointe le membre pContentKey de D3DDDIARG_DECRYPTIONBLT . Si pContentKey a la valeur NULL, cela indique que l’application a utilisé la clé de session pour chiffrer les données.

Si la fonction CreateCryptoSession du pilote a précédemment créé la session de chiffrement avec le membre CryptoType de la structure D3DDDIARG_CREATECRYPTOSESSION défini sur D3DCRYPTOTYPE_AES128_CTR, le membre pIV de D3DDDIARG_DECRYPTIONBLT pointe vers la structure DXVADDI_PVP_HW_IV et contient le vecteur d’initialisation utilisé par l’application pour chiffrer la mémoire tampon. La fonction DecryptionBlt du pilote doit échouer si elle détermine que le vecteur d’initialisation a déjà été utilisé pour la même clé de contenu (ou la clé de session si la clé de contenu n’est pas utilisée). L’application doit incrémenter le membre IV de la structure DXVADDI_PVP_HW_IV pour chaque mémoire tampon chiffrée par l’application. Par conséquent, la fonction DecryptionBlt du pilote peut échouer si le membre IV est inférieur ou égal à la valeur IV précédente qui a été passée à DecryptionBlt.

Si le pilote et le matériel prennent en charge des mémoires tampons partiellement chiffrées, le membre pEncryptedBlockInfo de D3DDDIARG_DECRYPTIONBLT indique les parties de la mémoire tampon chiffrées et les parties qui ne sont pas chiffrées. Si la mémoire tampon entière est chiffrée, pEncryptedBlockInfo doit avoir la valeur NULL.

DecryptionBlt ne peut pas écrire de sous-rectangles.

Le runtime Direct3D vérifie que la surface source spécifiée par le membre SrcSubResourceIndex de la structure D3DDDIARG_DECRYPTIONBLT se trouve dans la mémoire système et qu’aucune extension, conversion d’espace de couleur, etc. n’est effectuée. Une application doit s’assurer que la mémoire tampon système est correctement alignée et que la taille de la mémoire tampon correspond à la surface de destination. Le pilote doit vérifier l’alignement de la mémoire et la taille de la mémoire tampon (membre SrcResourceSize de D3DDDIARG_DECRYPTIONBLT) et échouer si ces conditions ne sont pas correctes..

Configuration requise

Condition requise Valeur
Client minimal pris en charge DecryptionBlt est pris en charge à partir du système d’exploitation Windows 7.
Plateforme cible Desktop (Expérience utilisateur)
En-tête d3dumddi.h (inclure D3dumddi.h)

Voir aussi

CreateCryptoSession

D3DDDIARG_CREATECRYPTOSESSION

D3DDDIARG_DECRYPTIONBLT

D3DDDI_DEVICEFUNCS