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

Voir aussi

ID3D11VideoContext