Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Um driver de miniporta DMus gerencia as funções dependentes de hardware de dispositivos MIDI avançados. Esses dispositivos suportam recursos DirectMusic, como sequenciamento preciso, sons transferíveis (DLS) e grupos de canais. Os drivers de miniporta DMus podem alcançar alto desempenho com dispositivos como MPU-401. A temporização pode ser manipulada pelo driver da miniporta ou pelo driver da porta, dependendo das capacidades do hardware. Um driver de miniporta DMus também pode suportar um sintetizador de software que gera um fluxo de saída de onda.
Um driver de miniporta DMus para um dispositivo de hardware MIDI deve suportar duas interfaces:
A interface de miniporta inicializa o objeto de miniporta e cria fluxos MIDI.
A interface de fluxo gerencia um fluxo MIDI e expõe a maioria das funcionalidades do driver de miniporta.
A interface de miniporta, IMiniportDMus, herda os métodos na interface IMiniport . IMiniportDMus fornece os seguintes métodos adicionais:
Inicializa o objeto miniport.
Cria um novo objeto stream.
Notifica o controlador de miniporta de uma solicitação de serviço.
A interface de fluxo IMXF herda os métodos da interface IUnknown. O IMXF fornece os seguintes métodos adicionais:
Conecta esse objeto de fluxo, que é uma fonte de dados, à interface IMXF de outro objeto de fluxo, que é um coletor de dados.
Desconecta esse objeto de fluxo da interface IMXF de outro objeto de fluxo que é um coletor de dados.
Passa uma estrutura DMUS_KERNEL_EVENT para o recetor de dados.
Define o estado do fluxo.
Além disso, a interface ISynthSinkDMus do driver de miniporta DMus fornece funcionalidade DLS para sintetizadores de software. ISynthSinkDMus herda os métodos na interface base IMXF. ISynthSinkDMus fornece os seguintes métodos adicionais:
ISynthSinkDMus::RefTimeToSample
Converte um tempo de referência em um tempo de amostra.
Renderiza dados de onda em um buffer para o coletor de onda.
ISynthSinkDMus::SampleToRefTime
Converte um tempo de amostra em um tempo de referência.
Sincroniza o relógio de amostra com o relógio mestre.
O coletor de onda do driver de porta chama ISynthSinkDMus::Render para ler os dados de onda PCM que o sintetizador gera a partir de seu fluxo de entrada MIDI. Para obter mais informações sobre o coletor de ondas, consulte Um coletor de onda para sintetizadores de software Kernel-Mode.
O miniport driver chama as seguintes interfaces no driver de porta DMus:
IPortDMus
IAllocatorMXF
#B0 IMasterClock #C1
PortCls contém um driver de miniporta DMus integrado para um dispositivo MIDI com uma função UART. Para obter mais informações, consulte PcNewMiniport.