Minidrivers de arquitetura do driver de difusão

Os minidrivers BDA (Arquitetura do Driver de Difusão) controlam o hardware que executa as seguintes operações:

  • Ajustando um sinal de transmissão digital

  • Rebaixando o sinal digital

  • Capturando quadros do sinal digital

  • Demultiplexing do sinal em fluxos de vídeo, áudio e dados

Os minidrivers BDA são minidrivers AVStream executados sob o módulo AVStream no driver de streaming de kernel ks.sys. O AVStream é um driver de classe que fornece um modelo de classe de streaming de kernel unificado para minidrivers de áudio e vídeo e que dá suporte ao uso de objetos COM sem alterar binários de minidriver existentes. O driver de classe AVStream fornece grande parte do comportamento padrão necessário para fazer o filtro de um minidriver funcionar como um filtro compatível com streaming de kernel WDM. Para simplificar a tarefa de escrever minidrivers BDA, você pode usar a biblioteca de suporte do BDA (Bdasup.lib) de funções incluídas no WDK (Microsoft Windows Driver Kit). Essa biblioteca fornece um tratamento padrão extensivo para a propriedade e os conjuntos de métodos do minidriver BDA.

Normalmente, os gravadores de driver só precisam codificar as estruturas de modelo estáticas apropriadas, registrá-las na biblioteca de suporte do BDA e, em seguida, permitir que a biblioteca forneça tratamento padrão para todas as propriedades e métodos. Em alguns casos, um minidriver BDA deve interceptar uma solicitação de propriedade ou método e executar operações apropriadas.

A figura a seguir mostra uma visão geral da arquitetura para minidrivers BDA:

visão geral do diagrama da arquitetura do minidriver bda.

As seções a seguir descrevem os detalhes de implementação de um minidriver BDA, discutem detalhes de alguns conjuntos de propriedades e métodos e contêm código de exemplo que mostra como interceptar determinadas propriedades e métodos:

Inicializando um minidriver BDA

Iniciando um minidriver BDA

Criando tabelas de expedição

Definindo tabelas de automação

Inicializando um filtro BDA

Usando conjuntos de propriedades e métodos do BDA

Informações de fixação em cache para DirectShow

Protegendo um minidriver BDA

Conectando-se entre pinos de filtros para minidrivers BDA