Driver de Porta Mini MIDI

Um driver de miniporta MIDI gerencia as funções dependentes de hardware de dispositivos MIDI simples que não possuem recursos avançados, como sequenciamento de hardware e sons para download (DLS). O driver de porta MIDI lida com o tempo de entrega de mensagens MIDI para sintetizadores. O driver de miniporta MIDI é responsável apenas por transportar as mensagens MIDI para o sintetizador em resposta a solicitações do driver de porta. Dispositivos com capacidades MIDI avançadas devem usar um driver DMus miniport em vez disso.

Um driver de miniporta MIDI deve implementar 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, IMiniportMidi, herda os métodos na interface IMiniport . IMiniportMidi fornece os seguintes métodos adicionais:

IMiniportMidi::Init

Inicializa o objeto miniport.

IMiniportMidi::NewStream

Cria um novo objeto stream.

IMiniportMidi::Service

Notifica o controlador de miniporta de uma solicitação de serviço.

A interface de fluxo, IMiniportMidiStream, herda os métodos na interface IUnknown . IMiniportMidiStream fornece os seguintes métodos adicionais:

IMiniportMidiStream::Ler

Lê dados de entrada de um dispositivo de captura MIDI.

IMiniportMidiStream::SetFormat

Define o formato de dados do fluxo MIDI.

IMiniportMidiStream::SetState

Define o estado do fluxo MIDI.

IMiniportMidiStream::Escrever

Grava dados de saída em um sintetizador MIDI.

O driver de porta MIDI lida com todos os problemas de temporização em ambas as direções e confia no driver de miniporta para mover prontamente os dados para dentro e para fora do adaptador em resposta às chamadas do driver de porta para os métodos de leitura e gravação IMiniportMidiStream .

PortCls contém drivers de miniporta MIDI integrados para dispositivos MIDI que têm funções de sintetizador FM e UART. Para obter mais informações, consulte PcNewMiniport.