PFND3DDDI_DECRYPTIONBLT funzione di callback (d3dumddi.h)
La funzione DecryptionBlt scrive i dati in una superficie protetta.
Sintassi
PFND3DDDI_DECRYPTIONBLT Pfnd3dddiDecryptionblt;
HRESULT Pfnd3dddiDecryptionblt(
HANDLE hDevice,
const D3DDDIARG_DECRYPTIONBLT *unnamedParam2
)
{...}
Parametri
hDevice
Handle per il dispositivo di visualizzazione (contesto grafico).
unnamedParam2
pData [in]
Puntatore a una struttura D3DDDIARG_DECRYPTIONBLT che descrive i parametri dell'operazione di trasferimento bit-block decrittografato (bitblt).
Valore restituito
DecrittografiaBlt restituisce uno dei valori seguenti:
Codice restituito | Descrizione |
---|---|
S_OK | L'operazione bitblt decrittografata viene eseguita correttamente. |
E_OUTOFMEMORY | DecrittografiaBlt non è stato in grado di allocare la memoria necessaria per il completamento. |
D3DDDIERR_NOTAVAILABLE | Il driver non supporta la funzione DecryptionBlt. |
Commenti
Hardware e driver possono supportare facoltativamente DecrittografiaBlt per alcuni tipi di crittografia.
Se l'applicazione chiamante richiede l'uso di una chiave di contenuto, l'applicazione usa la chiave di contenuto per crittografare i dati e la chiave di sessione per crittografare la chiave del contenuto prima di passare la chiave di contenuto nel blocco di memoria a cui punta il membro pContentKey di D3DDDIARG_DECRYPTIONBLT . Se pContentKey è NULL, indica che l'applicazione ha usato la chiave di sessione per crittografare i dati.
Se la funzione CreateCryptoSession del driver ha creato in precedenza la sessione di crittografia con il membro CryptoTypedella struttura D3DDDIARG_CREATECRYPTOSESSION impostata su D3DCRYPTOTYPE_AES128_CTR, il membro pIV di D3DDDIARG_DECRYPTIONBLT punta alla struttura DXVADDI_PVP_HW_IV e contiene il vettore di inizializzazione usato dall'applicazione per crittografare il buffer. La funzione DecrittografiaBlt del driver deve non riuscire se determina che il vettore di inizializzazione è stato usato in precedenza per la stessa chiave di contenuto (o chiave di sessione se la chiave del contenuto non viene usata). L'applicazione deve aumentare il membro IV della struttura DXVADDI_PVP_HW_IV per ogni buffer crittografato dall'applicazione. Pertanto, la funzione DecryptionBlt del driver può non riuscire se il membro IV è minore o uguale al valore IV precedente passato a DecryptionBlt.
Se il driver e l'hardware supportano buffer parzialmente crittografati, il membro pEncryptedBlockInfo di D3DDDIARG_DECRYPTIONBLT indica le parti del buffer crittografate e le parti non crittografate. Se l'intero buffer è crittografato, pEncryptedBlockInfo deve essere NULL.
La decrittografiaBlt non può scrivere sotto rettangoli.
Il runtime Direct3D verifica che la superficie di origine specificata dal membro SrcSubResourceIndex della struttura D3DDDIARG_DECRYPTIONBLT sia in memoria di sistema e che non venga eseguita alcuna conversione dello spazio dei colori e così via. Un'applicazione deve assicurarsi che il buffer di memoria di sistema sia allineato correttamente e che le dimensioni del buffer corrispondano alla superficie di destinazione. Il driver deve verificare l'allineamento della memoria e le dimensioni del buffer (membro SrcResourceSize di D3DDDIARG_DECRYPTIONBLT) e non riuscire se queste condizioni non sono corrette.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | La decrittografiaBlt è supportata a partire dal sistema operativo Windows 7. |
Piattaforma di destinazione | Desktop |
Intestazione | d3dumddi.h (include D3dumddi.h) |