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 das Objekt an 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-Audiodatenstromdaten 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 Anruf erfolgreich war. Andernfalls gibt die Methode einen geeigneten Fehlercode zurück. In der folgenden Tabelle sind einige der möglichen Rückgabestatuscodes aufgeführt.

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

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 im Datenpfad über die COM-Schnittstelle des nachgeschalteten Moduls miteinander kommunizieren, ruft das upstream-Modul die DrmForwardContentToInterface-Funktion auf, um das System mit einem 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 durch pUnknownverwiesen wird. (Wenn die Methoden zwischen mehreren Modulen verteilt werden, authentifiziert die Funktion alle diese Module.) Diese vom Anbieter definierte Schnittstelle muss sowohl vom Modul verstanden werden, das die Schnittstelle aufruft, als auch vom Modul, das die Schnittstelle implementiert. DrmForwardContentToInterface macht keine Annahmen bezüglich dieser Schnittstelle, außer dass sie von IUnknownabgeleitet wird.

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

  • Fragt die pUnknown Schnittstelle für die IDrmAudioStream--Schnittstelle ab. Beachten Sie, dass die DrmForwardContentToInterface zwar alle Methoden in der pUnknown--Schnittstelle authentifiziert, jedoch keine Methoden in der pUnknown--Schnittstelle außer der Basis IUnknown Methoden aufruft.
  • Ruft IDrmAudioStream::SetContentId auf, um die DRM-Inhalts-ID und die DRM-Inhaltsrechte für den Audiodatenstrom festzulegen. Vor dem Zurückgeben gibt DrmForwardContentToInterface die IDrmAudioStream--Schnittstelle frei.
Der pUnknown Parameter folgt den Referenzzählungskonventionen für COM-Objekte.

DrmForwardContentToInterface führt dieselbe Funktion wie PcForwardContentToInterface und IDrmPort::ForwardContentToInterfaceaus. 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

DrmAddContentHandlers

DrmForwardContentToDeviceObject

IDrmAudioStream-

IDrmAudioStream::SetContentId

IDrmPort::ForwardContentToInterface

IoCallDriver-

PcForwardContentToInterface