Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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 a blocchi di bit decrittografato (bitblt).
Valore restituito
DecryptionBlt restituisce uno dei valori seguenti:
| Codice restituito | Descrizione |
|---|---|
| S_OK | L'operazione bitblt decrittografata viene eseguita correttamente. |
| E_OUTOFMEMORY | DecrittografiaBlt non è riuscito ad allocare la memoria necessaria per il completamento. |
| D3DDDIERR_NOTAVAILABLE | Il driver non supporta la funzione DecryptionBlt. |
Osservazioni
Hardware e driver possono facoltativamente supportare DecryptionBlt per alcuni tipi di crittografia.
Se l'applicazione chiamante richiede l'uso di una chiave simmetrica, l'applicazione usa la chiave simmetrica per crittografare i dati e la chiave di sessione per crittografare la chiave simmetrica prima di passare la chiave simmetrica nel blocco di memoria a cui punta il pContentKey membro di D3DDDIARG_DECRYPTIONBLT. Se pContentKey è NULL, indica che l'applicazione ha usato la chiave di sessione per crittografare i dati.
Se la funzione di CreateCryptoSession del driver ha creato in precedenza la sessione di crittografia con il membro CryptoType della struttura D3DDDIARG_CREATECRYPTOSESSION impostata su D3DCRYPTOTYPE_AES128_CTR, il pIV membro di D3DDDIARG_DECRYPTIONBLT punta alla struttura DXVADDI_PVP_HW_IV e contiene il vettore di inizializzazione usato dall'applicazione per crittografare il buffer. Il driver DecryptionBlt funzione deve avere esito negativo se determina che il vettore di inizializzazione è stato usato in precedenza per la stessa chiave simmetrica (o la chiave di sessione se la chiave simmetrica non viene usata). L'applicazione deve incrementare il IV membro della struttura DXVADDI_PVP_HW_IV per ogni buffer crittografato dall'applicazione. Pertanto, la funzione di DecryptionBlt del driverBlt 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 pEncryptedBlockInfo membro di D3DDDIARG_DECRYPTIONBLT indica le parti del buffer crittografate e le parti non crittografate. Se l'intero buffer è crittografato, pEncryptedBlockInfo deve essere NULL.
DecryptionBlt non può scrivere rettangoli secondari.
Il runtime Direct3D verifica che la superficie di origine specificata dal SrcSubResourceIndex membro della struttura D3DDDIARG_DECRYPTIONBLT sia in memoria di sistema e che non venga eseguita alcuna estensione, 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 (SrcResourceSize membro di D3DDDIARG_DECRYPTIONBLT) e non riuscire se queste condizioni non sono corrette.
Fabbisogno
| Requisito | Valore |
|---|---|
| client minimo supportato | DecryptionBlt è supportato a partire dal sistema operativo Windows 7. |
| piattaforma di destinazione | Desktop |
| intestazione | d3dumddi.h (include D3dumddi.h) |