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.
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.
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.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 8 |
Server minimo supportato | Windows Server 2012 |
Piattaforma di destinazione | Desktop |
Intestazione | d3d10umddi.h (include D3d10umddi.h) |