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.
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.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows 8 |
mindestens unterstützte Server- | Windows Server 2012 |
Zielplattform- | Desktop |
Header- | d3d10umddi.h (include D3d10umddi.h) |