Controlador de puerto MIDI
El controlador de puerto MIDI administra un sintetizador MIDI o un dispositivo de captura. El controlador del adaptador proporciona un controlador midi miniport correspondiente que se enlaza al objeto de controlador de puerto MIDI para formar un filtro MIDI (consulta Filtros MIDI y DirectMusic) que puede capturar o representar una secuencia MIDI.
El controlador de puerto MIDI expone una interfaz IPortMidi al controlador de minipuerto. IPortMidi hereda los métodos de la interfaz base IPort. IPortMidi proporciona los siguientes métodos adicionales:
Notifica al controlador de puerto que el sintetizador MIDI o el dispositivo de captura han avanzado a una nueva posición en la secuencia MIDI. IPortMidi::RegisterServiceGroup
Registra un objeto de grupo de servicios con el controlador de puerto. Un grupo de servicios contiene una lista de una o varias rutinas de servicio a las que se va a llamar cuando el controlador de miniporte llama a Notify; para obtener más información, vea Objetos de grupo de servicio y receptor de servicio.
Los objetos midi port y miniport driver se comunican entre sí a través de sus respectivas interfaces IPortMidi e IMiniportMidi . El controlador de minipuerto usa la interfaz IPortMidi del controlador de puerto para notificar al controlador de puerto las interrupciones de hardware. Además, el controlador de puerto se comunica con los objetos de flujo del controlador de minipuerto a través de sus interfaces IMiniportMidiStream .
En Windows XP y versiones posteriores, las interfaces IPortMidi e IPortDMus se implementan en un único módulo de controlador interno. Esta consolidación se facilita mediante la similitud de estas dos interfaces. Por ejemplo, se definen los mismos métodos para ambas interfaces. Las aplicaciones escritas para versiones anteriores de Windows no deberían ver ningún cambio en el comportamiento de las interfaces IPortMidi e IPortDMus resultantes de la consolidación de los controladores de puerto MIDI y DMus.