Delen via


IMXF-interfaces

Alle MIDI-transport in de DirectMusic-poort en het miniportstuurprogramma wordt uitgevoerd met dezelfde interface: IMXF.

IMXF is de COM-interface voor een DirectMusic MIDI-transformatiefilter. Het minipoortstuurprogramma, de sequencer en andere entiteiten in het poortstuurprogramma die MIDI-gegevens verwerken, gebruiken IMXF als hun gemeenschappelijke COM-interface. Wanneer het miniportstuurprogramma deze interface implementeert, kan het deelnemen aan MIDI-transport. IPortDMus, dat zich in PortCls bevindt, beheert IMXF. De interface tussen het opnameapparaat en de capturesink is ook een IMXF-interface.

MIDI-gegevens worden vervoerd tussen de gebruikersmodus en de kernelmodus in buffers van verpakte tijdstempelgegevens. Het stuurprogramma voor de kernelpoort breekt deze buffers op in afzonderlijke gebeurtenissen (zie DMUS_KERNEL_EVENT). De MIDI-sequencer met hoge resolutie stuurt deze gebeurtenissen naar het minipoortstuurprogramma wanneer de activeringstijd plaatsvindt.

Aan de invoerzijde extraheert het kernelpoortstuurprogramma afzonderlijke invoerberichten uit het minipoortstuurprogramma en bouwt verpakte buffers om door te geven aan de gebruikersmodus. Daarom bestaat het datatransportmodel voor DirectMusic-miniportstuurprogramma's uit IMXF::PutMessage en IAllocatorMXF::GetMessage.

De IMXF-interface ondersteunt de volgende methoden:

IMXF::ConnectOutput

IMXF::DisconnectOutput

IMXF::PutMessage

IMXF::SetState

De IAllocatorMXF-interface breidt IMXF uit door de volgende methoden toe te voegen:

IAllocatorMXF::GetMessage

IAllocatorMXF::GetBufferSize

IAllocatorMXF::GetBuffer

IAllocatorMXF::PutBuffer

Zie Allocator voor meer informatie over het gebruik van deze interfaces.