Partilhar via


Gerenciando topologias dinâmicas

Um adaptador de áudio contém alguns subdispositivos para manutenção de dispositivos de áudio externos, como alto-falantes e microfones, que o usuário conecta às tomadas de áudio front-or-back-panel do adaptador. Cada subdispositivo atende a uma tomada de áudio ou um grupo específico de tomadas.

O driver de áudio descreve cada subdispositivo apresentando uma topologia que é essencialmente um mapa das conexões internas e dos elementos de processamento dentro do subdispositivo. Os módulos da API do Windows fornecidos pelo sistema e os aplicativos do painel de controle fornecidos pelo fornecedor usam as informações de topologia para determinar os recursos do subdispositivo e identificar seus pontos de controle internos. Para obter mais informações, consulte Expondo a topologia de filtro.

Os drivers de áudio WDM que foram desenvolvidos antes das interfaces IUnregisterSubdevice e IUnregisterPhysicalConnection ficarem disponíveis têm principalmente topologias estáticas. Para esses drivers, depois que o driver do adaptador cria um objeto de driver de miniporto para gerenciar um subdispositivo, esse objeto e seu subdispositivo associado persistem durante o tempo de vida do objeto de driver do adaptador.

No entanto, em um adaptador de áudio configurável dinamicamente, o driver do adaptador pode criar e excluir subdispositivos em tempo de execução para refletir as alterações na configuração de hardware à medida que o usuário conecta dispositivos externos a tomadas de áudio e os remove. Esse comportamento permite que os subdispositivos operem como funções de hardware logicamente independentes. Em outras palavras, cada subdispositivo pode ser ligado, configurado e desligado independentemente dos outros subdispositivos.

Cada subdispositivo tem uma topologia interna que consiste no seguinte:

  • Os caminhos de dados por meio do subdispositivo.

  • Os nós de topologia (por exemplo, controle de volume) que processam os fluxos de dados que fluem ao longo dos caminhos de dados.

  • As conexões físicas do subdevice com outros subdispositivos no mesmo adaptador.

Quando um driver de adaptador remove dinamicamente um subdispositivo, ele libera os recursos de hardware associados à topologia interna do subdevice. O driver do adaptador pode usar esses recursos para criar um novo subdispositivo com uma topologia possivelmente diferente.

Ao configurar um novo subdispositivo de áudio, o driver do adaptador registra a interface de driver do subdispositivo como uma instância de uma ou mais classes de interface do dispositivo, e o gerenciador de E/S adiciona uma ou mais entradas do Registro que contêm links simbólicos que associam as classes de interface e as instâncias de interface. Para acessar o subdispositivo, um cliente de modo de usuário recupera o link simbólico do registro e o passa como um parâmetro de chamada para a função CreateFile . Normalmente, o cliente é um módulo da API do Windows, como Dsound.dll ou Wdmaud.drv, ou um painel de controle fornecido pelo fornecedor ou um programa utilitário de áudio. Para obter mais informações sobre CreateFile, consulte a documentação do SDK do Microsoft Windows.

Quando o driver de miniporto chama o método IUnregisterSubdevice::UnregisterSubdevice para remover um subdispositivo, o driver do sistema PortCls (Portcls.sys) instrui o gerenciador de E/S a remover o link simbólico para a interface do dispositivo associada do registro. Os componentes registrados para eventos de remoção da interface do dispositivo recebem notificação quando a interface é removida.

O adaptador de áudio pode conter circuitos de presença de tomada para notificar o driver de miniporto quando um plugue é inserido ou removido de uma tomada de áudio. Quando o usuário insere um plug-in em uma tomada de áudio, o driver do adaptador adiciona a interface do dispositivo do subdevice associado ao registro. Quando o usuário remove um plugue de uma tomada de áudio, o driver do adaptador remove a interface do dispositivo correspondente do registro.

Os adaptadores de áudio que dão suporte a topologias dinâmicas têm os seguintes benefícios:

  • Amigável

    A menos que alto-falantes da área de trabalho, fones de ouvido e outros dispositivos de áudio externos estejam realmente conectados a tomadas de áudio nos painéis frontal ou traseiro do adaptador de áudio, o sistema não apresenta esses dispositivos a aplicativos de áudio como disponíveis para uso.

  • Eficiente em termos de energia

    Quando o usuário remove um plugue de uma tomada de áudio, o driver pode desligar a parte do circuito do adaptador que atende a essa tomada.

  • Configurável

    Depois de remover um subdispositivo, o driver pode usar os recursos de hardware associados à topologia interna do subdevice para criar um novo subdispositivo com uma topologia possivelmente diferente.