Partager via


PFND3DDDI_DECRYPTIONBLT fonction de rappel (d3dumddi.h)

La fonction DéchiffrementBlt é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 de retour

DéchiffrementBlt retourne l’une des valeurs suivantes :

Retourner le code Description
S_OK L’opération bitblt déchiffrée est effectuée avec succès.
E_OUTOFMEMORY Le déchiffrementBlt n’a pas pu allouer la mémoire requise pour qu’elle soit terminée.
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 auquel le pContentKey membre de D3DDDIARG_DECRYPTIONBLT pointe vers. Si pContentKey est NULL, il 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éfinie 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 été utilisé précédemment 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 IV membre 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 passée à DecryptionBlt.

Si le pilote et le matériel prennent en charge les 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 être NULL.

DéchiffrementBlt ne peut pas écrire de sous-rectangles.

Le runtime Direct3D vérifie que la surface source spécifiée par la SrcSubResourceIndex membre de la structure D3DDDIARG_DECRYPTIONBLT est en mémoire système et qu’aucune conversion d’espace de couleur, et ainsi de suite, 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 (SrcResourceSize membre de D3DDDIARG_DECRYPTIONBLT) et échouer si ces conditions ne sont pas correctes.

Exigences

Exigence Valeur
client minimum pris en charge DecryptionBlt est pris en charge à partir du système d’exploitation Windows 7.
plateforme cible Bureau
d’en-tête d3dumddi.h (include D3dumddi.h)

Voir aussi

CreateCryptoSession

D3DDDIARG_CREATECRYPTOSESSION

D3DDDIARG_DECRYPTIONBLT

D3DDDI_DEVICEFUNCS