Estrutura DRMFORWARD (drmk.h)

A estrutura DRMFORWARD contém as informações de que o driver do sistema DRMK precisa para encaminhar uma ID de conteúdo drm para um dispositivo que manipula o conteúdo protegido.

Sintaxe

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

Membros

Flags

Nenhum bit de sinalizador está definido no momento. Defina esse membro como zero.

DeviceObject

Ponteiro para o objeto do dispositivo, que é uma estrutura do sistema do tipo DEVICE_OBJECT.

FileObject

Ponteiro para o objeto de arquivo, que é uma estrutura do sistema do tipo FILE_OBJECT.

Context

Ponteiro para dados de contexto. Para obter mais informações, consulte a seção Comentários a seguir.

Comentários

Essa estrutura é um dos parâmetros de chamada da função DrmForwardContentToDeviceObject . A estrutura contém as informações de que a função precisa para enviar uma KSPROPERTY_DRMAUDIOSTREAM_CONTENTIDsolicitação set-property para um driver WDM.

O driver WDM gerencia o dispositivo representado pelo membro DeviceObject . A função DrmForwardContentToDeviceObject envia a solicitação de propriedade para esse objeto de dispositivo.

Ao construir o IRP que contém a solicitação de propriedade, a função DrmForwardContentToDeviceObject copia o membro FileObject no campo FileObject no local da pilha de E/S do driver no IRP. Se o driver WDM for um driver KS (que implementa todo ou parte de um filtro KS), o membro FileObject representará o pino no filtro que deve receber o fluxo que contém o conteúdo protegido. Para um driver não KS, os campos de contexto na estrutura FILE_OBJECT podem conter qualquer valor cujo significado seja acordado entre o driver e o chamador da função DrmForwardContentToDeviceObject .

O membro Context contém um valor de contexto que a função DrmForwardContentToDeviceObject copia para o descritor de propriedade do KSPROPERTY_DRMAUDIOSTREAM_CONTENTID solicitação set-property (membro context da estrutura KSP_DRMAUDIOSTREAM_CONTENTID). O membro Context pode conter qualquer valor cujo significado é acordado entre o driver e o chamador da função DrmForwardContentToDeviceObject .

Por convenção, se o módulo downstream for um filtro KS, o membro Context apontará para um objeto de arquivo que especifica o pino KS ao qual a função DrmForwardContentToDeviceObject envia a solicitação de propriedade. Em outras palavras, o membro Context aponta para o mesmo objeto de arquivo que o membro FileObject .

A estrutura DRMFORWARD também é usada pela função PcForwardContentToDeviceObject e pelo método IDrmPort2::ForwardContentToDeviceObject , que são pontos de entrada alternativos para a função DrmForwardContentToDeviceObject . Para obter mais informações, consulte Funções e interfaces drm.

Quando um driver de áudio encaminha o conteúdo drm para um driver USB fornecido pelo sistema, as seguintes condições se aplicam:

  • DRMFORWARD. DeviceObject deve ser colocado na parte superior da pilha do dispositivo.
  • DRMFORWARD. FileObject pode ser NULL porque a pilha USB não usa IO_STACK_LOCATION. FileObject.
  • DRMFORWARD. O contexto deve ser definido como um valor USBD_PIPE_HANDLE que corresponda ao pipe usado pelo driver de áudio.

Para obter informações gerais sobre DRM, confira Gerenciamento de Direitos Digitais.

Requisitos

Requisito Valor
Cabeçalho drmk.h (inclua Drmk.h)

Confira também

DEVICE_OBJECT

DrmForwardContentToDeviceObject

FILE_OBJECT

IDrmPort2::ForwardContentToDeviceObject

KSPROPERTY_DRMAUDIOSTREAM_CONTENTID

KSP_DRMAUDIOSTREAM_CONTENTID

PcForwardContentToDeviceObject