Поделиться через


Драйвер MIDI-порта

Драйвер MIDI-порта управляет синтезатором MIDI или устройством захвата. Драйвер адаптера предоставляет соответствующий драйвер мини-порта MIDI , который привязывается к объекту драйвера порта MIDI для формирования фильтра MIDI (см. раздел MIDI и DirectMusic Filters), который может захватывать или отрисовывать поток MIDI.

Драйвер MIDI-порта предоставляет драйверу мини-порта интерфейс IPortMidi . IPortMidi наследует методы в базовом интерфейсе IPort. IPortMidi предоставляет следующие дополнительные методы:

IPortMidi::Notify

Уведомляет драйвер порта о том, что синтезатор MIDI или устройство захвата переместился на новую позицию в потоке MIDI. IPortMidi::RegisterServiceGroup

Регистрирует объект группы служб в драйвере порта. Группа служб содержит список из одной или нескольких подпрограмм службы, которые должны вызываться при вызове драйвера минипорта Notify; Дополнительные сведения см. в разделе Приемник службы и объекты групп служб.

Объекты драйвера MIDI-порта и мини-порта взаимодействуют друг с другом через соответствующие интерфейсы IPortMidi и IMiniportMidi . Драйвер мини-порта использует интерфейс IPortMidi драйвера порта для уведомления драйвера порта о аппаратных прерываниях. Кроме того, драйвер порта взаимодействует с объектами потока драйвера мини-порта через интерфейсы IMiniportMidiStream .

В Windows XP и более поздних версиях интерфейсы IPortMidi и IPortDMus реализуются в одном внутреннем модуле драйвера. Такая консолидация облегчается сходством этих двух интерфейсов. Например, для обоих интерфейсов определены одни и те же методы. Приложения, написанные для предыдущих версий Windows, не должны видеть никаких изменений в поведении интерфейсов IPortMidi и IPortDMus в результате консолидации драйверов портов MIDI и DMus.