Condividi tramite


PFND3D11_1DDI_DECRYPTIONBLT funzione di callback (d3d10umddi.h)

Scrive i dati crittografati in una superficie protetta. Questa funzione viene chiamata solo se D3D11_1DDI_CONTENT_PROTECTION_CAPS_DECRYPTION_BLT è impostato nel membro Caps della struttura D3D11_1DDI_VIDEO_CONTENT_PROTECTION_CAPS .

Sintassi

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

Parametri

hDevice

Handle per il dispositivo di visualizzazione (contesto grafico).

hCryptoSession

Handle per i dati privati del driver per la sessione di crittografia. Questo handle è stato creato dal runtime Direct3D e passato al driver nella chiamata alla funzione CreateCryptoSession .

hSrcResource

Handle per la risorsa che contiene i dati di origine.

hDstResource

Puntatore alla risorsa in cui devono essere scritti i dati crittografati.

pEncryptedBlockInfo

Puntatore a una struttura D3D11_1DDI_ENCRYPTED_BLOCK_INFO che descrive le parti del buffer crittografate.

Nota Se l'intero buffer è crittografato, pEncryptedBlockinfo deve essere impostato su NULL.
 

ContentKeySize

Dimensione, in byte, della chiave simmetrica.

pContentKey

Puntatore a un blocco di memoria che contiene la chiave simmetrica necessaria per decrittografare i dati di trasferimento in blocchi di bit (bitblt).

Se pContentKey non è impostato su NULL, i dati del buffer vengono crittografati usando la chiave simmetrica specificata. I dati per questa chiave vengono crittografati usando la chiave di sessione con l'algoritmo AES-ECB.

Se pContentKey è NULL, la scheda grafica non richiede una chiave simmetrica separata per decrittografare i dati. In questo caso, la chiave di sessione viene usata per decrittografare i dati.

IVSize

Dimensione, in byte, del vettore di inizializzazione (IV).

pIV

Puntatore a un blocco di memoria contenente il vettore di inizializzazione necessario per decrittografare i dati bitblt. Per altre informazioni, vedere la sezione Osservazioni.

Nota  

Se pIV è NULL, la scheda grafica non richiede un vettore di inizializzazione separato per decrittografare i dati. Vale a dire, la chiave di sessione viene usata per decrittografare i dati.

 

Valore restituito

nessuno

Osservazioni

Per la crittografia AES-CTR a 128 bit, il parametro pIV punta a una struttura D3D11_1DDI_AES_CTR_IV allocata dall'applicazione. Tuttavia, il contenuto effettivo di questa struttura viene compilato dal driver o dalla scheda grafica. Quando viene generato il primo IV, il driver o l'adattatore inizializza il membro IV di questa struttura in un numero casuale. Per ogni IV successivo, il chiamante incrementa il membro IV , assicurando che il valore aumenti sempre. Questa procedura consente all'applicazione di verificare che lo stesso IV non venga mai usato più volte con la stessa coppia di chiavi.

Per altri tipi di crittografia, potrebbe essere usata una struttura diversa o la crittografia potrebbe non usare un IV.

Nota Questa funzione non rispetta un predicato Direct3D versione 11 che potrebbe essere stato impostato.
 

Requisiti

Requisito Valore
Client minimo supportato Windows 8
Server minimo supportato Windows Server 2012
Piattaforma di destinazione Desktop
Intestazione d3d10umddi.h (include D3d10umddi.h)

Vedi anche

D3D11_1DDI_AES_CTR_IV

D3D11_1DDI_ENCRYPTED_BLOCK_INFO

D3D11_1DDI_VIDEO_CONTENT_PROTECTION_CAPS