DrmAddContentHandlers-Funktion (drmk.h)

Die DrmAddContentHandlers -Funktion stellt dem System eine Liste von Funktionen bereit, die geschützte Inhalte verarbeiten.

Syntax

NTSTATUS DrmAddContentHandlers(
  [in] ULONG ContentId,
  [in] PVOID *paHandlers,
  [in] ULONG NumHandlers
);

Parameter

[in] ContentId

Gibt die DRM-Inhalts-ID an. Dieser Parameter identifiziert einen geschützten KS-Audiodatenstrom.

[in] paHandlers

Zeiger auf ein Array von Funktionszeigern. Jedes Arrayelement verweist auf einen Inhaltshandler.

[in] NumHandlers

Gibt die Anzahl der Funktionszeiger im paHandlers-Array an.

Rückgabewert

DrmAddContentHandlers gibt STATUS_SUCCESS zurück, wenn der Aufruf erfolgreich war. Andernfalls wird ein geeigneter Fehlercode zurückgegeben.

Hinweise

Bevor geschützte Inhalte einen Datenpfad durchlaufen, überprüft das System, ob der Datenpfad sicher ist. Dazu authentifiziert das System jedes Modul im Datenpfad, beginnend am Upstream Ende des Datenpfads und wechselt nach unten. Während jedes Modul authentifiziert wird, gibt dieses Modul dem System Informationen zum nächsten Modul im Datenpfad an, damit es auch authentifiziert werden kann. Um erfolgreich authentifiziert zu werden, muss die Binärdatei eines Moduls als DRM-konform signiert werden.

Wenn zwei angrenzende Module entweder über die IoCallDriver-Funktion oder die COM-Schnittstelle des nachgeschalteten Moduls miteinander kommunizieren, ruft das Upstream-Modul die DrmForwardContentToInterface- bzw. DrmForwardContentToDeviceObject-Funktion auf, um dem System Informationen zum downstream-Modul bereitzustellen. Wenn die beiden Module jedoch einen anderen Schnittstellentyp für die Kommunikation verwenden, ruft das Upstream Modul stattdessen die DrmAddContentHandlers Funktion auf.

Das paHandlers-Array enthält Funktionszeiger auf Einstiegspunkte im Downstreammodul. DrmAddContentHandlers authentifiziert das Modul, das diese Funktionen implementiert. (Wenn die Einstiegspunkte auf mehrere Module verteilt sind, authentifiziert die Funktion alle diese Module.) Die vom Anbieter definierten Funktionen in diesem Array bilden eine Schnittstelle, die sowohl vom Modul, das die Funktionen aufruft, als auch vom Modul verstanden wird, das die Funktionen implementiert. DrmAddContentHandlers ruft keine dieser Funktionen direkt auf.

Das Upstream-Modul kann sowohl die Inhalts-ID als auch die Inhaltsrechte an das downstream-Modul übergeben, indem zu diesem Zweck eine der Funktionen im paHandlers-Array verwendet wird. Das downstream-Modul benötigt die Inhalts-ID, um das System über alle Module zu informieren, an die es den geschützten Inhalt sendet.

DrmAddContentHandlers führt dieselbe Funktion wie PcAddContentHandlers und IDrmPort2::AddContentHandlers aus. Weitere Informationen finden Sie unter DRM-Funktionen und -Schnittstellen.

Anforderungen

Anforderung Wert
Zielplattform Universell
Header drmk.h (drmk.h einschließen)
Bibliothek Drmk.lib
IRQL PASSIVE_LEVEL

Weitere Informationen

DrmForwardContentToDeviceObject

DrmForwardContentToInterface

IDrmPort2::AddContentHandlers

IoCallDriver

PcAddContentHandlers