Compartir a través de


Función DrmForwardContentToInterface (drmk.h)

La DrmForwardContentToInterface función acepta un puntero a la interfaz COM de un objeto al que el autor de la llamada pretende reenviar el 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 KS asociada a pUnknown no admite los derechos de contenido DRM asignados a ContentId.

Comentarios

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 DrmForwardContentToInterface función 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 hace suposiciones con respecto a esta interfaz distinta de que se deriva de IUnknown.

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

  • Consulta la interfaz pUnknown para su interfaz IDrmAudioStream . Tenga en cuenta que, aunque DrmForwardContentToInterface autentica todos los métodos de la interfaz pUnknown , no llama a ningún método de la interfaz pUnknown que no sea los métodos base IUnknown .
  • Llama a IDrmAudioStream::SetContentId para establecer el identificador de contenido DRM y los derechos de contenido DRM en la secuencia de audio. Antes de devolverlo, 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 e IDrmPort::ForwardContentToInterface. Para obtener más información, consulte Funciones e interfaces drm.

Requisitos

Requisito Value
Plataforma de destino Universal
Encabezado drmk.h (incluye Drmk.h)
Library Drmk.lib
IRQL PASSIVE_LEVEL

Consulte también

DrmAddContentHandlers

DrmForwardContentToDeviceObject

IDrmAudioStream

IDrmAudioStream::SetContentId

IDrmPort::ForwardContentToInterface

IoCallDriver

PcForwardContentToInterface