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-Runtime erstellt und im Aufruf der CreateCryptoSession-Funktion an den Treiber übergeben.

hSrcResource

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

hDstResource

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

pEncryptedBlockInfo

Ein Zeiger auf eine D3D11_1DDI_ENCRYPTED_BLOCK_INFO Struktur, die die verschlüsselten Teile des 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 mit dem angegebenen Inhaltsschlüssel 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 Grafikkarte 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 Bitbltdaten erforderlich ist. Weitere Informationen finden Sie im Abschnitt mit Hinweisen.

Hinweis  

Wenn pIV NULL ist, benötigt der Grafikkarte 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

Keine

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 Grafikkarte ausgefüllt. Wenn die erste IV generiert wird, initialisiert der Treiber oder Adapter das IV-Element dieser Struktur zu einer Zufallszahl. Für jede nachfolgende IV erhöht der Aufrufer den IV-Member , um sicherzustellen, dass der Wert immer steigt. Mit diesem Verfahren kann die Anwendung überprüfen, ob dieselbe IV nie mehr als einmal mit demselben Schlüsselpaar verwendet wird.

Für andere Verschlüsselungstypen kann eine andere Struktur verwendet werden, oder die Verschlüsselung verwendet möglicherweise keine IV.

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

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8
Unterstützte Mindestversion (Server) Windows Server 2012
Zielplattform Desktop
Kopfzeile d3d10umddi.h (einschließlich D3d10umddi.h)

Weitere Informationen

D3D11_1DDI_AES_CTR_IV

D3D11_1DDI_ENCRYPTED_BLOCK_INFO

D3D11_1DDI_VIDEO_CONTENT_PROTECTION_CAPS