Freigeben über


DRM-Funktionen und -Schnittstellen

Die Systemtreiberkomponenten Drmk.sys und Portcls.sys eine Sammlung von DRM-Funktionen und Schnittstellen implementieren, die Treiber zum Verwalten der digitalen Rechte von Kernelstreaming-Audioinhalten verwenden. Die Drmk.sys-Komponente implementiert eine Reihe von DrmXxx-Funktionen , und Portcls.sys implementiert einen DRM-spezifischen Satz von PcXxx-Funktionen sowie die IDrmPort - und IDrmPort2-Schnittstellen .

Die folgenden DRM-Funktionen sind verfügbar:

DrmAddContentHandler

Stellt dem System eine Treiberschnittstelle bereit, die aus einer Liste von Funktionen für die Verarbeitung geschützter Inhalte besteht. DrmCreateContentMixed

Erstellt eine DRM-Inhalts-ID, um einen KS-Audiostream zu identifizieren, der gemischte Inhalte aus mehreren Eingabestreams enthält. DrmDestroyContent

Löscht eine DRM-Inhalts-ID. DrmForwardContentToDeviceObject

Authentifiziert einen Treiber und sendet ihm die DRM-Inhalts-ID und Die Inhaltsrechte, die das System einem Stream mit geschützten Inhalten zugewiesen hat. DrmForwardContentToFileObject

Veraltete Funktion. DrmForwardContentToInterface

Authentifiziert ein Treiberobjekt und sendet die DRM-Inhalts-ID und die Inhaltsrechte, die das System einem Stream mit geschützten Inhalten zugewiesen hat. DrmGetContentRights

Ruft die DRM-Inhaltsrechte ab, die das System einer DRM-Inhalts-ID zugewiesen hat. Die Funktionen in dieser Liste werden in der Headerdatei Drmk.h deklariert. Der Kernelmodus-DRMK-Systemtreiber Drmk.sys exportiert die Einstiegspunkte für diese Funktionen.

In Windows XP und höher exportiert der PortCls-Systemtreiber Portcls.sys einen anderen Satz von Einstiegspunkten für denselben Satz von DRM-Funktionen. Die Namen der PortCls-Funktionen ähneln denen in der vorherigen Liste, mit der Ausnahme, dass sie das Präfix Pc anstelle von Drm verwenden:

PcAddContentHandler

PcCreateContentMixed

PcDestroyContent

PcForwardContentToDeviceObject

PcForwardContentToFileObject

PcForwardContentToInterface

PcGetContentRights

Diese Funktionsnamen werden in der Headerdatei Portcls.h deklariert. Die Einstiegspunkte in Portcls.sys nur die entsprechenden Funktionen in Drmk.sys aufrufen. Die PortCls-Einstiegspunkte werden einfach zur Vereinfachung bereitgestellt, sodass ein Audiotreiber, der bereits mit Portcls.sys verbunden ist, nicht explizit Drmk.sys laden muss.

In Windows XP und höher wird derselbe Funktionssatz auch als Methoden in den IDrmPort - und IDrmPort2-Schnittstellen verfügbar gemacht:

IDrmPort2::AddContentHandlers

IDrmPort::CreateContentMixed

IDrmPort::D estroyContent

IDrmPort2::ForwardContentToDeviceObject

IDrmPort::ForwardContentToFileObject

IDrmPort::ForwardContentToInterface

IDrmPort::GetContentRights

Die Schnittstellen IDrmPort und IDrmPort2 werden in der Headerdatei Portcls.h deklariert und in Portcls.sys implementiert. Diese Methoden führen nichts weiter aus, als die entsprechenden Funktionen in Drmk.sys aufzurufen. Ein Miniporttreiber ruft einen Verweis auf eine IDrmPortx-Schnittstelle ab, indem er seinen Porttreiber für diese Schnittstelle fragt. Der Vorteil der Verwendung einer IDrmPortx-Schnittstelle anstelle der entsprechenden DrmXxx - oder PcXxx-Funktionen besteht darin, dass der Treiber diese Abfrage verwenden kann, um zur Laufzeit zu bestimmen, ob die Betriebssystemversion DRM unterstützt oder nicht. Dies vereinfacht das Schreiben eines einzelnen Treibers, der sowohl in neueren Versionen von Windows ausgeführt werden kann, die DRM unterstützen, als auch in älteren Versionen, die dies nicht tun. IDrmPort2 wird von IDrmPort abgeleitet und bietet zwei zusätzliche Methoden.

Die WaveCyclic- und WavePci-Porttreiber verwenden die IDrmAudioStream-Schnittstelle , wenn sie vom entsprechenden Miniporttreiber unterstützt wird. Der Porttreiber ruft die IDrmAudioStream::SetContentId-Methode auf, um den digitalen Inhalten in einem Audiostream DRM-Schutz zuzuweisen.

Das DEFINE_DRMRIGHTS_DEFAULT Makro, das in der Headerdatei Drmk.h definiert ist, initialisiert die Member einer DRMRIGHTS-Struktur mit ihren Standardwerten.