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