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.
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.
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.
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
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für