Интерфейсы IMXF

Весь транспорт MIDI в DirectMusic-порту и минипорте выполняется через единый интерфейс: IMXF.

IMXF — это COM-интерфейс для фильтра преобразования DirectMusic MIDI. Минипорт-драйвер, последовательность и другие сущности в драйвере портов, обрабатывающие данные MIDI, используют IMXF в качестве общего интерфейса COM. Когда минипорт-драйвер реализует этот интерфейс, он может участвовать в передаче данных MIDI. IPortDMus, который находится в PortCls, управляет IMXF. Интерфейс от устройства захвата к приемнику захвата также является интерфейсом IMXF.

Данные MIDI передаются между пользовательским режимом и режимом ядра в буферах упакованных данных с меткой времени. Драйвер порта ядра разбивает эти буферы на отдельные события (см. DMUS_KERNEL_EVENT). Последовательность MIDI с высоким разрешением передает эти события в драйвер мини-порта при возникновении времени триггера.

На входной стороне драйвер порта ядра извлекает отдельные входные сообщения из драйвера мини-порта и создает упакованные буферы для передачи в режим пользователя. Соответственно, модель транспорта данных для драйверов мини-порта DirectMusic состоит из IMXF::PutMessage и IAllocatorMXF::GetMessage.

Интерфейс IMXF поддерживает следующие методы:

IMXF::ConnectOutput

IMXF::DisconnectOutput

IMXF::PutMessage

IMXF::SetState

Интерфейс IAllocatorMXF расширяет IMXF , добавив следующие методы:

IAllocatorMXF::GetMessage

IAllocatorMXF::GetBufferSize

IAllocatorMXF::GetBuffer

IAllocatorMXF::PutBuffer

Дополнительные сведения об использовании этих интерфейсов см. в разделе Allocator.