Freigeben über


PFND3DDDI_DECRYPTIONBLT Rückruffunktion (d3dumddi.h)

Die DecryptionBlt--Funktion schreibt Daten auf eine geschützte Oberfläche.

Syntax

PFND3DDDI_DECRYPTIONBLT Pfnd3dddiDecryptionblt;

HRESULT Pfnd3dddiDecryptionblt(
  HANDLE hDevice,
  const D3DDDIARG_DECRYPTIONBLT *unnamedParam2
)
{...}

Parameter

hDevice

Ein Handle für das Anzeigegerät (Grafikkontext).

unnamedParam2

pData- [in]

Ein Zeiger auf eine D3DDDIARG_DECRYPTIONBLT Struktur, die die Parameter des entschlüsselten Bitblockübertragungsvorgangs (Bitblt) beschreibt.

Rückgabewert

DecryptionBlt gibt einen der folgenden Werte zurück:

Rückgabecode Beschreibung
S_OK Der entschlüsselte Bitblt-Vorgang wird erfolgreich ausgeführt.
E_OUTOFMEMORY DecryptionBlt konnte den erforderlichen Arbeitsspeicher nicht zuordnen, damit er abgeschlossen werden kann.
D3DDDIERR_NOTAVAILABLE Der Treiber unterstützt die DecryptionBlt-Funktion nicht.

Bemerkungen

Hardware und Treiber können optional DecryptionBlt- für einige Kryptotypen unterstützen.

Wenn die aufrufende Anwendung die Verwendung eines Inhaltsschlüssels erfordert, verwendet die Anwendung den Inhaltsschlüssel zum Verschlüsseln der Daten und den Sitzungsschlüssel, um den Inhaltsschlüssel zu verschlüsseln, bevor der Inhaltsschlüssel im Speicherblock übergeben wird, auf den der pContentKey Mitglied von D3DDDIARG_DECRYPTIONBLT verweist. Wenn pContentKey-NULL-ist, gibt sie an, dass die Anwendung den Sitzungsschlüssel zum Verschlüsseln der Daten verwendet hat.

Wenn die CreateCryptoSession-Funktion des Treibers zuvor die Verschlüsselungssitzung mit dem CryptoType Mitglied der D3DDDIARG_CREATECRYPTOSESSION-Struktur erstellt hat, die auf D3DCRYPTOTYPE_AES128_CTR festgelegt ist, verweist das pIV Member von D3DDDIARG_DECRYPTIONBLT auf die DXVADDI_PVP_HW_IV Struktur und enthält den Initialisierungsvektor, den die Anwendung zum Verschlüsseln des Puffers verwendet hat. Die DecryptionBlt-Funktion des Treibers sollte fehlschlagen, wenn festgestellt wird, dass der Initialisierungsvektor zuvor für denselben Inhaltsschlüssel (oder Sitzungsschlüssel, wenn der Inhaltsschlüssel nicht verwendet wird) verwendet wurde. Die Anwendung sollte das IV Mitglied der DXVADDI_PVP_HW_IV Struktur für jeden Puffer erhöhen, den die Anwendung verschlüsselt. Daher kann die DecryptionBlt-Funktion des Treibers fehlschlagen, wenn das IV- Mitglied kleiner oder gleich dem vorherigen IV Wert ist, der an DecryptionBltübergeben wurde.

Wenn der Treiber und die Hardware teilweise verschlüsselte Puffer unterstützen, gibt das pEncryptedBlockInfo Member von D3DDDIARG_DECRYPTIONBLT die Teile des Puffers an, die verschlüsselt sind, und die Teile, die nicht verschlüsselt sind. Wenn der gesamte Puffer verschlüsselt ist, sollte pEncryptedBlockInfo-NULL-sein.

DecryptionBlt- können keine Unterrechtecke schreiben.

Die Direct3D-Laufzeit überprüft, ob sich die durch die SrcSubResourceIndex angegebene Quelloberfläche Mitglied der D3DDDIARG_DECRYPTIONBLT Struktur im Systemspeicher befindet und dass keine Dehnung, Farbraumkonvertierung usw. ausgeführt wird. Eine Anwendung sollte sicherstellen, dass der Systemspeicherpuffer ordnungsgemäß ausgerichtet ist und die Größe des Puffers der Zieloberfläche entspricht. Der Treiber sollte die Speicherausrichtung und die Puffergröße überprüfen (SrcResourceSize Member von D3DDDIARG_DECRYPTIONBLT) und schlägt fehl, wenn diese Bedingungen nicht korrekt sind.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- DecryptionBlt wird ab dem Windows 7-Betriebssystem unterstützt.
Zielplattform- Desktop
Header- d3dumddi.h (include D3dumddi.h)

Siehe auch

CreateCryptoSession

D3DDDIARG_CREATECRYPTOSESSION

D3DDDIARG_DECRYPTIONBLT

D3DDDI_DEVICEFUNCS