Condividi tramite


Metodo ID3D11VideoContext::EncryptionBlt (d3d11.h)

Legge i dati crittografati da una superficie protetta.

Sintassi

void EncryptionBlt(
  [in] ID3D11CryptoSession *pCryptoSession,
  [in] ID3D11Texture2D     *pSrcSurface,
  [in] ID3D11Texture2D     *pDstSurface,
  [in] UINT                IVSize,
  [in] void                *pIV
);

Parametri

[in] pCryptoSession

Puntatore all'interfaccia ID3D11CryptoSession della sessione crittografica.

[in] pSrcSurface

Puntatore all'interfaccia ID3D11Texture2D dell'area protetta.

[in] pDstSurface

Puntatore all'interfaccia ID3D11Texture2D della superficie che riceve i dati crittografati.

[in] IVSize

Dimensioni del buffer pIV , in byte.

[in] pIV

Puntatore a un buffer che riceve il vettore di inizializzazione (IV). Il chiamante alloca questo buffer, ma il driver genera il iv.

Per la crittografia AES-CTR a 128 bit, pIV punta a una struttura di D3D11_AES_CTR_IV . Quando il driver genera il primo IV, inizializza la struttura in un numero casuale. Per ogni IV successiva, il driver incrementa semplicemente il membro IV della struttura, garantendo che il valore aumenti sempre. L'applicazione può convalidare che lo stesso IV non venga mai usato più di una volta con la stessa coppia di chiavi.

Valore restituito

Se questo metodo ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di errore HRESULT .

Commenti

Non tutti i driver supportano questo metodo. Per eseguire query sulle funzionalità del driver, chiamare ID3D11VideoDevice::GetContentProtectionCaps e verificare la presenza del flag di D3D11_CONTENT_PROTECTION_CAPS_ENCRYPTED_READ_BACK nel membro Capsdella struttura D3D11_VIDEO_CONTENT_PROTECTION_CAPS.

Alcuni driver potrebbero richiedere una chiave separata per decrittografare i dati letti di nuovo. Per verificare la presenza di questo requisito, chiamare GetContentProtectionCaps e verificare la presenza del flag di D3D11_CONTENT_PROTECTION_CAPS_ENCRYPTED_READ_BACK_KEY . Se questo flag è presente, chiamare ID3D11VideoContext::GetEncryptionBltKey per ottenere la chiave di decrittografia.

Questo metodo presenta le limitazioni seguenti:

  • La lettura dei sotto rettangoli non è supportata.
  • La lettura delle superfici parzialmente crittografate non è supportata.
  • La superficie protetta deve essere una superficie normale fuori schermo o una destinazione di rendering.
  • L'area di destinazione deve essere una risorsa D3D11_USAGE_STAGING .
  • La superficie protetta non può essere multicampionata.
  • La conversione dell'estensione e dello spazio dei colori non è supportata.

Questa funzione non rispetta un predicato D3D11 che potrebbe essere stato impostato.

Se l'applicazione usa query D3D11, questa funzione potrebbe non essere considerata con D3D11_QUERY_EVENT e D3D11_QUERY_TIMESTAMP quando si usano livelli di funzionalità inferiori a 11. D3D11_QUERY_PIPELINE_STATISTICS non includerà questa funzione per qualsiasi livello di funzionalità.

Requisiti

Requisito Valore
Client minimo supportato Windows 8 [app desktop | App UWP]
Server minimo supportato Windows Server 2012 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione d3d11.h

Vedi anche

ID3D11VideoContext