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) |