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