Compartir a través de


Función DrmForwardContentToInterface (drmk.h)

La función DrmForwardContentToInterface acepta un puntero a la interfaz COM de un objeto al que el autor de la llamada pretende reenviar contenido protegido. La función autentica el objeto y envía el objeto el identificador de contenido y los derechos DRM que el sistema ha asignado al contenido protegido.

Sintaxis

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

Parámetros

[in] ContentId

Especifica el identificador de contenido drm. Este parámetro identifica una secuencia de audio KS protegida.

[in] pUnknown

Puntero a una interfaz COM que recibe directamente los datos de la secuencia de audio KS para un filtro de audio KS.

[in] NumMethods

Especifica el número total de métodos de la interfaz COM a los que apunta pUnknown, incluidos todos los métodos de sus interfaces base.

Valor devuelto

DrmForwardContentToInterface devuelve STATUS_SUCCESS si la llamada se realizó correctamente. De lo contrario, el método devuelve un código de error adecuado. En la tabla siguiente se muestran algunos de los posibles códigos de estado de retorno.

Código devuelto Descripción
STATUS_NOT_IMPLEMENTED
Indica que la secuencia de audio de KS asociada a pUnknown no admite los derechos de contenido DRM asignados a ContentId.

Observaciones

Antes de permitir que el contenido protegido fluya a través de una ruta de acceso de datos, el sistema comprueba que la ruta de acceso de datos es segura. Para ello, el sistema autentica cada módulo en la ruta de acceso de datos a partir del final ascendente de la ruta de acceso de datos y se mueve hacia abajo. A medida que se autentica cada módulo, ese módulo proporciona información del sistema sobre el siguiente módulo en la ruta de acceso de datos para que también se pueda autenticar. Para autenticarse correctamente, el archivo binario de un módulo debe estar firmado como compatible con DRM.

Si dos módulos adyacentes de la ruta de acceso de datos se comunican entre sí a través de la interfaz COM del módulo de bajada, el módulo ascendente llama a la función DrmForwardContentToInterface para proporcionar al sistema un puntero a la interfaz COM. (Si los dos módulos se comunican a través de la función IoCallDriver o los controladores de contenido del módulo de bajada, el módulo ascendente llama a DrmForwardContentToDeviceObject o DrmAddContentHandlers en su lugar).

DrmForwardContentToInterface autentica el módulo que implementa los métodos en la interfaz COM a la que apunta pUnknown. (Si los métodos se distribuyen entre varios módulos, la función autentica todos estos módulos). Tanto el módulo que llama a la interfaz como al módulo que implementa la interfaz deben comprender esta interfaz definida por el proveedor. DrmForwardContentToInterface no supone ninguna suposición con respecto a esta interfaz distinta de la derivada de IUnknown.

Si DrmForwardContentToInterface realiza correctamente la autenticación del controlador o la biblioteca, hace lo siguiente:

  • Consulta la interfaz pUnknown de para su interfaz de IDrmAudioStream. Tenga en cuenta que aunque el DrmForwardContentToInterface autentica todos los métodos de la interfaz pUnknown, no llama a ningún método en la interfaz pUnknown que no sea el IUnknown métodos base.
  • Llama a IDrmAudioStream::SetContentId para establecer el identificador de contenido DRM y los derechos de contenido DRM en la secuencia de audio. Antes de devolver, DrmForwardContentToInterface libera la interfaz IDrmAudioStream.
El parámetro pUnknown sigue las convenciones de recuento de referencias para objetos COM.

DrmForwardContentToInterface realiza la misma función que pcForwardContentToInterface y IDrmPort::ForwardContentToInterface. Para obtener más información, consulte funciones y interfaces DRM.

Requisitos

Requisito Valor
de la plataforma de destino de Universal
encabezado de drmk.h (incluya Drmk.h)
biblioteca de Drmk.lib
irQL PASSIVE_LEVEL

Consulte también

drmAddContentHandlers

DrmForwardContentToDeviceObject

IDrmAudioStream

IDrmAudioStream::SetContentId

IDrmPort::ForwardContentToInterface

IoCallDriver

pcForwardContentToInterface