Content Protection DDI

Dieser Abschnitt gilt nur für Windows 7 und höher sowie Windows Server 2008 R2 und höhere Versionen des Windows-Betriebssystems.

Der Content Protection DDI ist eine Erweiterung der Direct3D-Version 9 DDI zum Schutz von Videos. Der Inhaltsschutz-DDI besteht aus den Einstiegspunkten, die in diesem Abschnitt beschrieben werden.

Erforderliche Inhaltsschutz-DDI-Funktionen

Wenn der Inhaltsschutz im Anzeigetreiber für den Benutzermodus implementiert ist, muss der Treiber die folgenden Content Protection-DDI-Funktionen unterstützen:

Inhaltsschutzfunktionen

Der Benutzermodusanzeigetreiber meldet nur Funktionen zum Schutz von Inhalten, wenn er jede der zuvor erforderlichen Content Protection-DDI-Funktionen unterstützt. Die folgenden D3DDDICAPS_TYPE Werte werden von der Direct3D-Runtime verwendet, um Informationen zu den Inhaltsschutzfunktionen abzurufen, die der Benutzermodusanzeigetreiber unterstützt. Die Runtime legt diese D3DDDICAPS_TYPE Werte im Type-Member der D3DDDIARG_GETCAPS-Struktur fest, auf die der pData-Parameter der GetCaps-Funktion des Treibers verweist, wenn die Runtime GetCaps aufruft.

D3DDDICAPS_GETCONTENTPROTECTIONCAPS
Die Runtime stellt einen Zeiger auf eine DDICONTENTPROTECTIONCAPS-Struktur für die spezifische Verschlüsselungs- und Decodierungskombination bereit, die der Treiber verwenden soll. Der Treiber gibt einen Zeiger auf eine aufgefüllte D3DCONTENTPROTECTIONCAPS-Struktur zurück, die die Inhaltsschutzfunktionen des Treibers für die Verschlüsselungs- und Decodierungskombination beschreibt. Weitere Informationen zu D3DCONTENTPROTECTIONCAPS finden Sie in der Dokumentation zum DirectX SDK.

D3DDDICAPS_GETCERTIFICATESIZE
Der Treiber stellt einen Zeiger auf eine Zahl bereit, die die Größe des Treiberzertifikats in Bytes angibt, das für einen Kanal- oder Kryptotyp verwendet wird. Die Direct3D-Runtime verwendet dann diese Größe, um einen Puffer zuzuweisen, der die Zertifikatinformationen enthält, die die Runtime empfängt, wenn die Runtime GetCaps mit D3DDDICAPS_GETCERTIFICATE aufruft .

D3DDDICAPS_GETCERTIFICATE
Die Runtime stellt einen Zeiger auf eine DDICERTIFICATEINFO-Struktur bereit, die das Zertifikat beschreibt, das der Treiber abrufen soll.

Für einen authentifizierten Kanal verwendet der Treiber das vorhandene OPM-Zertifikat , bei dem es sich um ein von Microsoft signiertes X.509-Zertifikat handelt.

Eine Anwendung kann das Zertifikat des Treibers abfragen, um die folgenden Informationen zu ermitteln:

  • Gibt an, ob der Treiber vertrauenswürdig ist.

  • Gibt an, ob der Treiber widerrufen wurde.

  • Der öffentliche Schlüssel des Treibers. Die Anwendung verwendet den öffentlichen Schlüssel des Treibers, um einen Sitzungsschlüssel für einen authentifizierten Kanal einzurichten, der für die Authentifizierung verwendet wird.

Ein Aufruf von GetCaps mit D3DDDICAPS_GETCERTIFICATE Set schlägt fehl, wenn für den direct3D 9-authentifizierten Kanal aufgerufen wird, da dieser Kanal kein Zertifikat oder eine Authentifizierung unterstützt.

Bei einer Kryptositzung gibt der Treiber sein Zertifikat für den angegebenen Kryptotyp zurück. Abhängig vom Kryptotyp und dem verwendeten Schlüsselaustausch kann ein Zertifikat verwendet werden oder nicht. Es ist auch möglich, dass verschiedene Kryptotypen unterschiedliche Zertifikate verwenden können.

Optionale Inhaltsschutz-DDI-Funktionen

Der Treiber kann optional die folgenden Content Protection-DDI-Funktionen unterstützen:

Inhaltsgeschützte Ressourcen

Die folgenden D3DDDI_RESOURCEFLAGS-Flags werden von der Direct3D-Runtime für geschützte Inhalte verwendet. Die Runtime legt diese D3DDDI_RESOURCEFLAGS Flags im Flags-Member der D3DDDIARG_CREATERESOURCE-Struktur fest, auf die der pResource-Parameter der CreateResource-Funktion des Treibers verweist, wenn die Runtime CreateResource aufruft.

RestrictedContent
Die Ressource kann geschützte Inhalte enthalten. Eine Anwendung kann den Inhaltsschutz explizit aktiviert haben, bevor die Anwendung eine Ressource erstellt. Der Treiber sollte sicherstellen, dass die Runtime die Zuordnung für die Ressource in einem Speicherpool platziert, der geschützt werden kann. Der Treiber sollte die Erstellung von sperrbaren geschützten Ressourcen ermöglichen. Der Treiber sollte jedoch explizit die Aufrufe seiner Lock-Funktion fehlschlagen, um diese Oberflächen zu sperren, während der Inhaltsschutz aktiviert ist.

RestrictSharedAccess
Nur bestimmte Prozesse sollten zugriff auf die freigegebene Ressource zugelassen werden.

Der Treiber sollte den freigegebenen Zugriff auf diese Ressource einschränken. Die Runtime kann nur die OpenResource-Funktion des Treibers aufrufen, um diese Ressource mit Anzeigegeräten (hDevice) innerhalb des Prozesses zu öffnen, der die Ressource erstellt hat, oder von den Geräten, denen explizit zugriff über den authentifizierten Kanal gewährt wurde.