Partager via


PFND3D11_1DDI_DECRYPTIONBLT fonction de rappel (d3d10umddi.h)

Écrit des données chiffrées dans une surface protégée. Cette fonction est appelée uniquement si D3D11_1DDI_CONTENT_PROTECTION_CAPS_DECRYPTION_BLT est défini dans le membre Majuscules de la structure D3D11_1DDI_VIDEO_CONTENT_PROTECTION_CAPS .

Syntaxe

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

Paramètres

hDevice

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

hCryptoSession

Handle des données privées du pilote pour la session de chiffrement. Ce handle a été créé par le runtime Direct3D et passé au pilote dans l’appel à la fonction CreateCryptoSession .

hSrcResource

Handle de la ressource qui contient les données sources.

hDstResource

Pointeur vers la ressource dans laquelle les données chiffrées doivent être écrites.

pEncryptedBlockInfo

Pointeur vers une structure de D3D11_1DDI_ENCRYPTED_BLOCK_INFO qui décrit les parties de la mémoire tampon chiffrées.

Note Si la mémoire tampon entière est chiffrée, pEncryptedBlockinfo doit avoir la valeur NULL.
 

ContentKeySize

Taille, en octets, de la clé de contenu.

pContentKey

Pointeur vers un bloc de mémoire qui contient la clé de contenu requise pour déchiffrer les données de transfert de bloc de bits (bitblt).

Si pContentKey n’est pas défini sur NULL, les données de mémoire tampon sont chiffrées à l’aide de la clé de contenu spécifiée. Les données de cette clé sont chiffrées à l’aide de la clé de session avec l’algorithme AES-ECB.

Si pContentKey a la valeur NULL, la carte graphique ne nécessite pas de clé de contenu distincte pour déchiffrer les données. Dans ce cas, la clé de session est utilisée pour déchiffrer les données.

IVSize

Taille, en octets, du vecteur d’initialisation (IV).

pIV

Pointeur vers un bloc de mémoire qui contient le vecteur d’initialisation requis pour déchiffrer les données bitblt. Pour plus d'informations, consultez la section Notes.

Remarque  

Si pIV a la valeur NULL, la carte graphique ne nécessite pas de vecteur d’initialisation distinct pour déchiffrer les données. Autrement dit, la clé de session est utilisée pour déchiffrer les données.

 

Valeur de retour

None

Remarques

Pour le chiffrement AES-CTR 128 bits, le paramètre pIV pointe vers une structure D3D11_1DDI_AES_CTR_IV allouée par l’application. Toutefois, le contenu réel de cette structure est renseigné par le pilote ou la carte graphique. Lorsque le premier iv est généré, le pilote ou l’adaptateur initialise le membre IV de cette structure en un nombre aléatoire. Pour chaque IV suivant, l’appelant incrémente le membre IV , s’assurant que la valeur augmente toujours. Cette procédure permet à l’application de vérifier que le même IV n’est jamais utilisé plusieurs fois avec la même paire de clés.

Pour d’autres types de chiffrement, une structure différente peut être utilisée ou le chiffrement peut ne pas utiliser d’IV.

Note Cette fonction n’honore pas un prédicat Direct3D version 11 qui a peut-être été défini.
 

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 8
Serveur minimal pris en charge Windows Server 2012
Plateforme cible Desktop (Expérience utilisateur)
En-tête d3d10umddi.h (include D3d10umddi.h)

Voir aussi

D3D11_1DDI_AES_CTR_IV

D3D11_1DDI_ENCRYPTED_BLOCK_INFO

D3D11_1DDI_VIDEO_CONTENT_PROTECTION_CAPS