PFND3D11_1DDI_CREATECRYPTOSESSION Rückruffunktion (d3d10umddi.h)

Erstellt eine kryptografische Sitzung zum Verschlüsseln von Videoinhalten, die an den Anzeigeminiporttreiber gesendet werden.

Syntax

PFND3D11_1DDI_CREATECRYPTOSESSION Pfnd3d111DdiCreatecryptosession;

HRESULT Pfnd3d111DdiCreatecryptosession(
  D3D10DDI_HDEVICE hDevice,
  const D3D11_1DDIARG_CREATECRYPTOSESSION *pCreateData,
  D3D11_1DDI_HCRYPTOSESSION hCryptoSession,
  D3D11_1DDI_HRTCRYPTOSESSION hRTCryptoSession
)
{...}

Parameter

hDevice

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

pCreateData

Ein Zeiger auf eine D3D11_1DDIARG_CREATECRYPTOSESSION-Struktur . Diese Struktur gibt die Attribute der zu erstellenden kryptografischen Sitzung an.

hCryptoSession

Ein Handle für die privaten Daten des Treibers für die kryptografische Sitzung. Weitere Informationen finden Sie im Abschnitt mit Hinweisen.

hRTCryptoSession

Ein Handle für die kryptografische Sitzung, das der Treiber verwenden sollte, wenn er in die Direct3D-Runtime zurückruft.

Rückgabewert

Gibt einen der folgenden Werte zurück:

Rückgabecode Beschreibung
S_OK Der authentifizierte Kanal wurde erfolgreich erstellt.
D3DDDIERR_DEVICEREMOVED Die Grafikkarte wurde entfernt.
D3DDDIERR_UNSUPPORTEDCRYPTO Es wurde ein kryptografischer Typ angegeben, der vom Decodierungsprofil nicht unterstützt wird.
E_OUTOFMEMORY Der Arbeitsspeicher war zum Abschließen des Vorgangs nicht verfügbar.

Hinweise

Die Direct3D-Runtime ruft CreateCryptoSession auf, um eine kryptografische Sitzung zu erstellen, die die Laufzeit zum Verwalten eines Sitzungsschlüssels und zum Ausführen kryptografischer Vorgänge für Videoinhalte verwendet, die im geschützten Speicher gespeichert sind.

Die Runtime ruft CreateCryptoSession auf, nachdem sie die CalcPrivateCryptoSessionSize des Treibers aufgerufen hat, um die Größe in Bytes für die privaten Daten zu bestimmen, die der Treiber für die kryptografische Sitzung benötigt. Die Runtime weist den Arbeitsspeicher für diese privaten Daten für den Treiber zu. Der Treiber verwendet diesen Arbeitsspeicher, um private Daten zu speichern, die sich auf die kryptografische Sitzung beziehen.

Wenn die Laufzeit CreateCryptoSession aufruft, übergibt sie das Handle an den privaten Datenspeicher im hCryptoSession-Parameter . Dieses Handle ist eigentlich ein Zeiger auf den Speicher.

Der Treiber muss das Handle für das Anzeigegerät nachverfolgen, das zum Erstellen der kryptografischen Sitzung verwendet wurde. Der Treiber sollte alle nachfolgenden Aufrufe, die diese erstellte kryptografische Sitzung verwenden, wie z. B . NegotiateCryptoSessionKeyExchange, fehlschlagen, wenn sich das in diesen Aufrufen angegebene Anzeigegerät von dem Anzeigegerät unterscheidet, das zum Erstellen der kryptografischen Sitzung verwendet wurde.

Wenn das DecodeProfile-Element der D3D11_1DDIARG_CREATECRYPTOSESSION-Struktur auf NULL_GUID festgelegt ist, wird die kryptografische Sitzung nicht für die DirectX-Videobeschleunigung (DXVA) verwendet. Wenn DecodeProfile nicht auf NULL_GUID festgelegt ist, sollte der Treiber den Aufruf mit D3DDDIERR_UNSUPPORTEDCRYPTO fehlschlagen, wenn das CryptoType-Element auf einen kryptografischen Typ festgelegt ist, der vom Decodierungsprofil nicht unterstützt wird.

Anforderungen

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

Weitere Informationen

CalcPrivateCryptoSessionSize

D3D11_1DDIARG_CREATECRYPTOSESSION

NegotiateCryptoSessionKeyExchange