Estructura DRMFORWARD (drmk.h)

La estructura DRMFORWARD contiene la información que necesita el controlador del sistema DRMK para reenviar un identificador de contenido DRM a un dispositivo que controla el contenido protegido.

Sintaxis

typedef struct tagDRMFORWARD {
  DWORD          Flags;
  PDEVICE_OBJECT DeviceObject;
  PFILE_OBJECT   FileObject;
  PVOID          Context;
} DRMFORWARD, *PDRMFORWARD;

Miembros

Flags

Actualmente no se definen bits de marca. Establezca este miembro en cero.

DeviceObject

Puntero al objeto de dispositivo, que es una estructura del sistema de tipo DEVICE_OBJECT.

FileObject

Puntero al objeto de archivo, que es una estructura del sistema de tipo FILE_OBJECT.

Context

Puntero a datos de contexto. Para obtener más información, vea la sección Comentarios que se muestra más adelante.

Comentarios

Esta estructura es uno de los parámetros de llamada de la función DrmForwardContentToDeviceObject . La estructura contiene la información que la función necesita para enviar una solicitud set-property KSPROPERTY_DRMAUDIOSTREAM_CONTENTIDa un controlador WDM.

El controlador WDM administra el dispositivo representado por el miembro DeviceObject . La función DrmForwardContentToDeviceObject envía la solicitud de propiedad a este objeto de dispositivo.

Al construir el IRP que contiene la solicitud de propiedad, la función DrmForwardContentToDeviceObject copia el miembro FileObject en el campo FileObject en la ubicación de la pila de E/S del controlador en el IRP. Si el controlador WDM es un controlador KS (que implementa todo o parte de un filtro KS), el miembro FileObject representa el pin del filtro que va a recibir la secuencia que contiene el contenido protegido. Para un controlador que no es de KS, los campos de contexto de la estructura FILE_OBJECT pueden contener cualquier valor cuyo significado esté acordado entre el controlador y el autor de la llamada de la función DrmForwardContentToDeviceObject .

El miembro Context contiene un valor de contexto que la función DrmForwardContentToDeviceObject copia en el descriptor de propiedad de la solicitud set-property de KSPROPERTY_DRMAUDIOSTREAM_CONTENTID (miembro Context de la estructura KSP_DRMAUDIOSTREAM_CONTENTID). El miembro Context puede contener cualquier valor cuyo significado esté acordado entre el controlador y el autor de la llamada de la función DrmForwardContentToDeviceObject .

Por convención, si el módulo de bajada es un filtro KS, el miembro Context apunta a un objeto de archivo que especifica el pin KS al que la función DrmForwardContentToDeviceObject envía la solicitud de propiedad. En otras palabras, el miembro Context apunta al mismo objeto de archivo que el miembro FileObject .

La estructura DRMFORWARD también la usa la función PcForwardContentToDeviceObject y el método IDrmPort2::ForwardContentToDeviceObject , que son puntos de entrada alternativos para la función DrmForwardContentToDeviceObject . Para obtener más información, consulte Funciones e interfaces drm.

Cuando un controlador de audio reenvía contenido DRM a un controlador USB proporcionado por el sistema, se aplican las condiciones siguientes:

  • DRMFORWARD. DeviceObject debe colocarse en la parte superior de la pila del dispositivo.
  • DRMFORWARD. FileObject puede ser NULL porque la pila USB no usa IO_STACK_LOCATION. FileObject.
  • DRMFORWARD. El contexto debe establecerse en un valor de USBD_PIPE_HANDLE que corresponda a la canalización utilizada por el controlador de audio.

Para obtener información general sobre DRM, consulte Digital Rights Management.

Requisitos

Requisito Valor
Header drmk.h (incluye Drmk.h)

Consulte también

DEVICE_OBJECT

DrmForwardContentToDeviceObject

FILE_OBJECT

IDrmPort2::ForwardContentToDeviceObject

KSPROPERTY_DRMAUDIOSTREAM_CONTENTID

KSP_DRMAUDIOSTREAM_CONTENTID

PcForwardContentToDeviceObject