Freigeben über


DrmForwardContentToInterface-Funktion (drmk.h)

Die DrmForwardContentToInterface Funktion akzeptiert einen Zeiger auf die COM-Schnittstelle eines Objekts, an das der Aufrufer geschützte Inhalte weiterleiten möchte. Die Funktion authentifiziert das Objekt und sendet dem Objekt die Inhalts-ID und die DRM-Rechte, die das System dem geschützten Inhalt zugewiesen hat.

Syntax

NTSTATUS DrmForwardContentToInterface(
  [in] ULONG    ContentId,
  [in] PUNKNOWN pUnknown,
  [in] ULONG    NumMethods
);

Parameter

[in] ContentId

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

[in] pUnknown

Zeiger auf eine COM-Schnittstelle, die KS-Audiostreamdaten für einen KS-Audiofilter direkt empfängt.

[in] NumMethods

Gibt die Gesamtzahl der Methoden in der COM-Schnittstelle an, auf die pUnknown verweist, einschließlich aller Methoden in den Basisschnittstellen.

Rückgabewert

DrmForwardContentToInterface gibt STATUS_SUCCESS zurück, wenn der Aufruf erfolgreich war. Andernfalls gibt die Methode einen geeigneten Fehlercode zurück. In der folgenden Tabelle sind einige der möglichen Rückgabecodes status aufgeführt.

Rückgabecode Beschreibung
STATUS_NOT_IMPLEMENTED
Gibt an, dass der KS-Audiostream, der pUnknown zugeordnet ist, die DRM-Inhaltsrechte, die ContentId zugewiesen sind, nicht unterstützt.

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 benachbarte Module im Datenpfad über die COM-Schnittstelle des nachgeschalteten Moduls miteinander kommunizieren, ruft das Upstream Modul die DrmForwardContentToInterface Funktion auf, um dem System einen Zeiger auf die COM-Schnittstelle bereitzustellen. (Wenn die beiden Module über die IoCallDriver-Funktion oder die Inhaltshandler des nachgeschalteten Moduls kommunizieren, ruft das Upstream Modul stattdessen DrmForwardContentToDeviceObject oder DrmAddContentHandlers auf.)

DrmForwardContentToInterface authentifiziert das Modul, das die Methoden in der COM-Schnittstelle implementiert, auf die von pUnknown verwiesen wird. (Wenn die Methoden auf mehrere Module verteilt sind, authentifiziert die Funktion alle diese Module.) Diese vom Hersteller definierte Schnittstelle muss sowohl vom Modul, das die Schnittstelle aufruft, als auch vom Modul verstanden werden, das die Schnittstelle implementiert. DrmForwardContentToInterface unternimmt keine Annahmen bezüglich dieser Schnittstelle, außer dass sie von IUnknown abgeleitet ist.

Wenn DrmForwardContentToInterface die Authentifizierung des Treibers oder der Bibliothek erfolgreich ist, führt dies die folgenden Schritte aus:

  • Fragt die pUnknown-Schnittstelle für ihre IDrmAudioStream-Schnittstelle ab. Beachten Sie, dass zwar DrmForwardContentToInterface alle Methoden in der pUnknown-Schnittstelle authentifiziert, aber keine Methoden in der pUnknown-Schnittstelle außer den IUnknown-Basismethoden aufgerufen werden.
  • Ruft IDrmAudioStream::SetContentId auf, um die DRM-Inhalts-ID und DRM-Inhaltsrechte für den Audiodatenstrom festzulegen. Gibt vor der Rückgabe DrmForwardContentToInterface die IDrmAudioStream-Schnittstelle frei.
Der pUnknown-Parameter folgt den Verweiszählungskonventionen für COM-Objekte.

DrmForwardContentToInterface führt die gleiche Funktion wie PcForwardContentToInterface und IDrmPort::ForwardContentToInterface 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

DrmAddContentHandlers

DrmForwardContentToDeviceObject

IDrmAudioStream

IDrmAudioStream::SetContentId

IDrmPort::ForwardContentToInterface

IoCallDriver

PcForwardContentToInterface