Inhaltsschutz-DDI

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

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

Erforderliche DDI-Funktionen für den Inhaltsschutz

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

Funktionen zum Schutz von Inhalten

Der Anzeigetreiber für den Benutzermodus meldet nur Inhaltsschutzfunktionen, wenn er jede der vorherigen erforderlichen DDI-Funktionen für den Inhaltsschutz unterstützt. Die folgenden D3DDDICAPS_TYPE-Werte werden von der Direct3D-Laufzeitumgebung verwendet, um Informationen über die Inhaltsschutzfunktionen abzurufen, die der Anzeigetreiber im Benutzermodus unterstützt. Die Laufzeit legt diese D3DDDICAPS_TYPE Werte im Type-Element der D3DDDIARG_GETCAPS-Struktur fest, auf die der pData-Parameter der GetCaps-Funktion des Treibers verweist, wenn die Laufzeit GetCaps aufruft.

D3DDDICAPS_GETCONTENTPROTECTIONCAPS
Die Laufzeit 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 DirectX SDK-Dokumentation.

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

D3DDDICAPS_GETCERTIFICATE
Die Laufzeit 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 X.509-Zertifikat handelt, das von Microsoft signiert ist.

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 wird.

  • 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 authentifizierten Direct3D 9-Kanal aufgerufen wird, da dieser Kanal kein Zertifikat oder eine Authentifizierung unterstützt.

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

Optionale DDI-Funktionen für den Inhaltsschutz

Der Treiber kann optional die folgenden DDI-Funktionen für den Inhaltsschutz unterstützen:

Inhaltsgeschützte Ressourcen

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

RestrictedContent
Die Ressource kann geschützte Inhalte enthalten. Eine Anwendung könnte oder könnte auch nicht explizit den Inhaltsschutz aktiviert haben, bevor sie eine Ressource erstellt. Der Treiber sollte sicherstellen, dass die Laufzeit 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 der Lock-Funktion fehlschlagen, um diese Oberflächen zu sperren, während der Inhaltsschutz aktiviert ist.

RestrictSharedAccess
Nur bestimmte Prozesse sollten auf die freigegebene Ressource zugreifen dürfen.

Der Treiber sollte den geteilten Zugriff auf diese Ressource einschränken. Die Laufzeit kann nur die OpenResource-Funktion des Treibers aufrufen, um diese Ressource mit Anzeigegeräten (hDevice) innerhalb des Prozesses zu öffnen, in dem die Ressource erstellt wurde, oder von geräten, die explizit zugriff über den authentifizierten Kanal gewährt wurden.