Freigeben über


DrmAddContentHandlers-Funktion (drmk.h)

Die DrmAddContentHandlers-Funktion bietet dem System eine Liste von Funktionen, die geschützte Inhalte behandeln.

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 in der paHandlers Array an.

Rückgabewert

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

Bemerkungen

Bevor geschützte Inhalte über einen Datenpfad fließen können, überprüft das System, ob der Datenpfad sicher ist. Dazu authentifiziert das System jedes Modul im Datenpfad beginnend am vorgelagerten Ende des Datenpfads und bewegt sich nach unten. Da jedes Modul authentifiziert ist, gibt dieses Modul dem System Informationen zum nächsten Modul im Datenpfad, damit es auch authentifiziert werden kann. Um erfolgreich authentifiziert zu werden, muss die Binärdatei eines Moduls als DRM-kompatibel signiert werden.

Wenn zwei benachbarte Module über die IoCallDriver--Funktion oder die COM-Schnittstelle des nachgeschalteten Moduls miteinander kommunizieren, ruft das upstream-Modul die DrmForwardContentToInterface oder DrmForwardContentToDeviceObject Funktion auf, um dem System Informationen über das nachgeschaltete 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 downstream-Modul. DrmAddContentHandlers authentifiziert das Modul, das diese Funktionen implementiert. (Wenn die Einstiegspunkte zwischen mehreren Modulen verteilt werden, authentifiziert die Funktion alle diese Module.) Die vom Anbieter definierten Funktionen in diesem Array bilden eine Schnittstelle, die sowohl vom Modul verstanden wird, das die Funktionen aufruft, als auch das Modul, das die Funktionen implementiert. DrmAddContentHandlers ruft keine dieser Funktionen direkt auf.

Das Upstreammodul kann sowohl die Inhalts-ID als auch die Inhaltsberechtigungen an das nachgeschaltete Modul übergeben, indem eine der Funktionen im paHandlers Arrays zu diesem Zweck verwendet wird. Das nachgeschaltete Modul benötigt die Inhalts-ID, um das System aller Module zu beraten, an die er den geschützten Inhalt sendet.

DrmAddContentHandlers die gleiche Funktion wie PcAddContentHandlers und IDrmPort2::AddContentHandlers. Weitere Informationen finden Sie unter DRM-Funktionen und -Schnittstellen.

Anforderungen

Anforderung Wert
Zielplattform- Universal
Header- drmk.h (include Drmk.h)
Library Drmk.lib
IRQL- PASSIVE_LEVEL

Siehe auch

DrmForwardContentToDeviceObject

DrmForwardContentToInterface

IDrmPort2::AddContentHandlers

IoCallDriver-

PcAddContentHandlers