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
DrmForwardContentToDeviceObject
IDrmPort2::ForwardContentToDeviceObject