ID3D11VideoContext ::EncryptionBlt, méthode (d3d11.h)
Lit les données chiffrées à partir d’une surface protégée.
Syntaxe
void EncryptionBlt(
[in] ID3D11CryptoSession *pCryptoSession,
[in] ID3D11Texture2D *pSrcSurface,
[in] ID3D11Texture2D *pDstSurface,
[in] UINT IVSize,
[in] void *pIV
);
Paramètres
[in] pCryptoSession
Pointeur vers l’interface ID3D11CryptoSession de la session de chiffrement.
[in] pSrcSurface
Pointeur vers l’interface ID3D11Texture2D de la surface protégée.
[in] pDstSurface
Pointeur vers l’interface ID3D11Texture2D de la surface qui reçoit les données chiffrées.
[in] IVSize
Taille de la mémoire tampon pIV , en octets.
[in] pIV
Pointeur vers une mémoire tampon qui reçoit le vecteur d’initialisation (IV). L’appelant alloue cette mémoire tampon, mais le pilote génère l’IV.
Pour le chiffrement AES-CTR 128 bits, pIV pointe vers une structure D3D11_AES_CTR_IV . Lorsque le pilote génère le premier IV, il initialise la structure en un nombre aléatoire. Pour chaque IV suivant, le pilote incrémente simplement le membre IV de la structure, en veillant à ce que la valeur augmente toujours. L’application peut vérifier que le même IV n’est jamais utilisé plus d’une fois avec la même paire de clés.
Valeur retournée
Si cette méthode réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT.
Remarques
Tous les pilotes ne prennent pas en charge cette méthode. Pour interroger les fonctionnalités du pilote, appelez ID3D11VideoDevice ::GetContentProtectionCaps et case activée pour l’indicateur D3D11_CONTENT_PROTECTION_CAPS_ENCRYPTED_READ_BACK dans le membre Majuscules de la structure D3D11_VIDEO_CONTENT_PROTECTION_CAPS.
Certains pilotes peuvent nécessiter une clé distincte pour déchiffrer les données qui sont lues. Pour case activée cette exigence, appelez GetContentProtectionCaps et case activée pour l’indicateur D3D11_CONTENT_PROTECTION_CAPS_ENCRYPTED_READ_BACK_KEY. Si cet indicateur est présent, appelez ID3D11VideoContext ::GetEncryptionBltKey pour obtenir la clé de déchiffrement.
Cette méthode présente les limitations suivantes :
- La lecture des sous-rectangles n’est pas prise en charge.
- La lecture de surfaces partiellement chiffrées n’est pas prise en charge.
- La surface protégée doit être une surface simple hors écran ou une cible de rendu.
- La surface de destination doit être une ressource D3D11_USAGE_STAGING .
- La surface protégée ne peut pas être multi-échantillonnée.
- L’étirement et la conversion colorspace ne sont pas pris en charge.
Cette fonction n’honore pas un prédicat D3D11 qui a peut-être été défini.
Si l’application utilise des requêtes D3D11, cette fonction peut ne pas être prise en compte avec D3D11_QUERY_EVENT et D3D11_QUERY_TIMESTAMP lors de l’utilisation de niveaux de fonctionnalités inférieurs à 11. D3D11_QUERY_PIPELINE_STATISTICS n’incluez pas cette fonction pour n’importe quel niveau de fonctionnalité.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 8 [applications de bureau | Applications UWP] |
Serveur minimal pris en charge | Windows Server 2012 [applications de bureau | Applications UWP] |
Plateforme cible | Windows |
En-tête | d3d11.h |