Desenvolvendo e depurando drivers DRM

A lista de verificação a seguir pode ajudar os gravadores de driver a evitar algumas armadilhas comuns:

  • Se o driver desabilitar a captura de onda e a saída S/PDIF enquanto o conteúdo protegido por DRM for reproduzido, o driver deverá se lembrar de habilitá-los novamente depois que o conteúdo protegido por DRM terminar de ser reproduzido (e o buffer DRM for destruído).

  • Se o dispositivo executar a combinação de hardware, o driver deverá acompanhar as alterações nos direitos de uso composto que ocorrem quando os fluxos são adicionados ou removidos da mistura. Sempre que a mistura incluir um ou mais fluxos drm protegidos por cópia, por exemplo, a captura deve ser silenciada. Ele deverá permanecer mudo se a captura estiver ativada enquanto a mistura protegida estiver sendo reproduzida.

  • Após uma alteração no grafo de filtro ou nas configurações de propriedade associadas a um fluxo, talvez o driver precise atualizar imediatamente as configurações de proteção de cópia e habilitação de saída do fluxo. O driver deve sincronizar sua operação para impedir que o conteúdo protegido seja copiado para um buffer de captura ou saída digital. Por exemplo, quando o fluxo de entrada para um multiplexador de captura é alterado, o driver não deve permitir que o conteúdo seguro fique vulnerável durante o tempo necessário para ativar e desativar o mudo.

O driver do sistema DRMK impede que o depurador de kernel se conecte enquanto o conteúdo protegido por DRM está sendo reproduzido. A proteção antidepuração é uma das várias medidas que o DRMK usa para tornar o conteúdo protegido opaco. No entanto, quando o driver estiver pronto para ser testado, você poderá depurar seus recursos compatíveis com DRM usando a seguinte técnica:

Com essa técnica, você pode reproduzir conteúdo desprotegido como se fosse conteúdo protegido por DRM, mas evitar desabilitar o depurador.

Por exemplo, você pode usar o depurador para verificar se o driver impede que o conteúdo seja gravado. Tente enganar o driver para habilitar a gravação do fluxo de ondas por meio do MUX de captura alterando o volume do programa SndVol32 e ativando configurações de mudo. Os controles deslizantes devem refletir as alterações feitas em suas configurações, que são persistentes, mas o MUX de captura deve continuar a ativar o fluxo de onda até que o conteúdo "protegido" termine de ser reproduzido. Somente então as novas configurações devem entrar em vigor.