Freigeben über


PFND3D11_1DDI_DECRYPTIONBLT Rückruffunktion (d3d10umddi.h)

Schreibt verschlüsselte Daten auf eine geschützte Oberfläche. Diese Funktion wird nur aufgerufen, wenn D3D11_1DDI_CONTENT_PROTECTION_CAPS_DECRYPTION_BLT im Caps Member der D3D11_1DDI_VIDEO_CONTENT_PROTECTION_CAPS Struktur festgelegt ist.

Syntax

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
)
{...}

Parameter

hDevice

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

hCryptoSession

Ein Handle für die privaten Daten des Treibers für die kryptografische Sitzung. Dieses Handle wurde von der Direct3D-Laufzeit erstellt und an den Treiber im Aufruf der CreateCryptoSession-Funktion übergeben.

hSrcResource

Ein Handle für die Ressource, die die Quelldaten enthält.

hDstResource

Ein Zeiger auf die Ressource, in der die verschlüsselten Daten geschrieben werden sollen.

pEncryptedBlockInfo

Ein Zeiger auf eine D3D11_1DDI_ENCRYPTED_BLOCK_INFO-Struktur, die die Teile des verschlüsselten Puffers beschreibt.

Hinweis Wenn der gesamte Puffer verschlüsselt ist, sollte pEncryptedBlockinfo- auf NULL festgelegt werden.
 

ContentKeySize

Die Größe des Inhaltsschlüssels in Bytes.

pContentKey

Ein Zeiger auf einen Speicherblock, der den Inhaltsschlüssel enthält, der zum Entschlüsseln der Bitblockübertragungsdaten (Bitblt) erforderlich ist.

Wenn pContentKey- nicht auf NULL festgelegt ist, werden die Pufferdaten mithilfe des angegebenen Inhaltsschlüssels verschlüsselt. Die Daten für diesen Schlüssel werden mithilfe des Sitzungsschlüssels mit dem AES-ECB Algorithmus verschlüsselt.

Wenn pContentKey NULL ist, benötigt der Grafikadapter keinen separaten Inhaltsschlüssel, um die Daten zu entschlüsseln. In diesem Fall wird der Sitzungsschlüssel verwendet, um die Daten zu entschlüsseln.

IVSize

Die Größe des Initialisierungsvektors (IV) in Bytes.

pIV

Ein Zeiger auf einen Speicherblock, der den Initialisierungsvektor enthält, der zum Entschlüsseln der Bitblt-Daten erforderlich ist. Weitere Informationen finden Sie im Abschnitt "Hinweise".

  

Wenn pIV- NULL ist, erfordert der Grafikadapter keinen separaten Initialisierungsvektor, um die Daten zu entschlüsseln. Das heißt, der Sitzungsschlüssel wird verwendet, um die Daten zu entschlüsseln.

 

Rückgabewert

Nichts

Bemerkungen

Bei der 128-Bit-AES-CTR-Verschlüsselung verweist der pIV Parameter auf eine D3D11_1DDI_AES_CTR_IV Struktur, die von der Anwendung zugewiesen wird. Der tatsächliche Inhalt dieser Struktur wird jedoch vom Treiber oder Grafikadapter ausgefüllt. Wenn der erste IV generiert wird, initialisiert der Treiber oder Adapter den IV Element dieser Struktur auf eine Zufallszahl. Für jeden nachfolgenden IV erhöht der Aufrufer den IV Member und stellt sicher, dass der Wert immer steigt. Mit diesem Verfahren kann die Anwendung überprüfen, ob derselbe IV nie mehr als einmal mit demselben Schlüsselpaar verwendet wird.

Bei anderen Verschlüsselungstypen kann eine andere Struktur verwendet werden, oder die Verschlüsselung verwendet möglicherweise keinen IV.

Hinweis Diese Funktion berücksichtigt kein Direct3D Version 11-Prädikat, das möglicherweise festgelegt wurde.
 

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 8
mindestens unterstützte Server- Windows Server 2012
Zielplattform- Desktop
Header- d3d10umddi.h (include D3d10umddi.h)

Siehe auch

D3D11_1DDI_AES_CTR_IV

D3D11_1DDI_ENCRYPTED_BLOCK_INFO

D3D11_1DDI_VIDEO_CONTENT_PROTECTION_CAPS