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)

Vedi anche

CreateCryptoSession

D3DDDIARG_CREATECRYPTOSESSION

D3DDDIARG_DECRYPTIONBLT

D3DDDI_DEVICEFUNCS