Dispositivos de áudio multifuncionais
Um dispositivo multifuncional é um único adaptador cartão que incorpora duas ou mais funções separadas (ou subdispositivos). Um dispositivo multifuncional pode conter dois ou mais subdispositivos de áudio. Ele também pode abranger classes de dispositivo. Um dispositivo que contém subdispositivos de áudio e modem, por exemplo, pertence à classe de mídia e à classe modem. Para obter mais informações, consulte Suporte a dispositivos multifuncionais.
O driver de porta WavePci em PortCls coloca requisitos especiais em dispositivos multifuncionais. Em particular, um driver de adaptador deve fornecer uma maneira de configurar cada subdispositivo para que ele possa ser controlado independentemente dos outros subdispositivos em um dispositivo multifuncional. Isso pode ser feito configurando o espaço de configuração de PCI para seu dispositivo multifuncional de uma das duas maneiras:
O método preferencial é atribuir uma ID de dispositivo separada a cada subdispositivo logicamente distinto em seu dispositivo multifuncional. Se o dispositivo multifuncional contiver subdispositivos de modem, áudio e joystick, por exemplo, o sistema deverá ser capaz de representar cada subdispositivo como um devnode independente na árvore de dispositivos. O subdispositivo representado por cada ID de dispositivo tem seu próprio conjunto de registros de configuração de PCI e é ortogonal para e independente dos outros subdispositivos. Por exemplo, habilitar ou desabilitar um subdispositivo (o subdispositivo de áudio, por exemplo) não deve ter nenhum efeito em nenhum outro subdispositivo (o modem, por exemplo). Esse tipo de dispositivo multifuncional não requer suporte especial de driver específico de hardware, além dos drivers proprietários para os próprios subdispositivos.
Uma segunda maneira de criar um dispositivo multifuncional é atribuir uma única ID de dispositivo ao dispositivo como um todo e fornecer BARs (registros de endereço base) PCI separados para os subdispositivos individuais. Nesse esquema, os subdispositivos compartilham um conjunto comum de registros de configuração, mas cada subdispositivo tem sua própria BARRA ou BARs. O driver multifuncional do sistema (por exemplo, Mf.sys no Microsoft Windows 2000 e posterior; consulte Usando o System-Supplied Driver de Barramento Multifuncional) pode configurar o endereço base para os registros de dados, comando e status de cada subdispositivo independentemente dos registros para as outras funções. Se os BARs do dispositivo não forem logicamente separados pelo subdispositivo, você não poderá usar PortCls para gerenciar seu dispositivo.
O restante desta seção descreve as etapas necessárias para implementar a abordagem (2) na lista anterior. Os seguintes tópicos são abordados: