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 |
---|---|
|
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.
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
DrmForwardContentToDeviceObject