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 |