Freigeben über


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 "Hinweise".

hRTCryptoSession

Ein Handle für die kryptografische Sitzung, die der Treiber verwenden soll, wenn er wieder in die Direct3D-Laufzeit aufruft.

Rückgabewert

Gibt einen der folgenden Werte zurück:

Rückgabecode Beschreibung
S_OK Der authentifizierte Kanal wurde erfolgreich erstellt.
D3DDDIERR_DEVICEREMOVED Der Grafikadapter wurde entfernt.
D3DDDIERR_UNSUPPORTEDCRYPTO Es wurde ein kryptografischer Typ angegeben, der vom Decodierungsprofil nicht unterstützt wird.
E_OUTOFMEMORY Der Arbeitsspeicher war nicht verfügbar, um den Vorgang abzuschließen.

Bemerkungen

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

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

Wenn die Laufzeit CreateCryptoSessionaufruft, übergibt sie das Handle an den privaten Datenspeicher im hCryptoSession Parameter. Dieses Handle ist tatsächlich ein Zeiger auf den Speicher.

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

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

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

CalcPrivateCryptoSessionSize

D3D11_1DDIARG_CREATECRYPTOSESSION

NegotiateCryptoSessionKeyExchange