Udostępnij przez


Sterownik DMus Miniport

Sterownik miniportu DMus zarządza funkcjami zależnymi od sprzętu zaawansowanych urządzeń MIDI. Te urządzenia obsługują funkcje DirectMusic, takie jak precyzyjne taktowanie sekwencera, dźwięki do ściągnięcia (DLS) i grupy kanałów. Sterowniki DMus miniport mogą osiągnąć wysoką wydajność z urządzeniami takimi jak MPU-401. Czas może być obsługiwany przez sterownik miniportu lub sterownik portu, w zależności od możliwości sprzętu. Sterownik miniportu DMus może również obsługiwać syntetyzator oprogramowania, który generuje strumień wyjściowy fali.

Sterownik miniportu DMus dla urządzenia sprzętowego MIDI powinien obsługiwać dwa interfejsy:

  • Interfejs miniportu inicjuje obiekt miniportu i tworzy strumienie MIDI.

  • Interfejs strumienia zarządza strumieniem MIDI i uwidacznia większość funkcji sterownika miniportu.

Interfejs miniportu IMiniportDMus dziedziczy metody w interfejsie IMiniport . IMiniportDMus udostępnia następujące dodatkowe metody:

IMiniportDMus::Init

Inicjuje obiekt miniportu.

IMiniportDMus::NewStream

Tworzy nowy obiekt strumienia.

IMiniportDMus::Service

Powiadamia sterownik miniportu o żądaniu obsługi.

Interfejs strumienia IMXF dziedziczy metody z interfejsu IUnknown. Program IMXF udostępnia następujące dodatkowe metody:

IMXF::ConnectOutput

Łączy ten obiekt strumienia, który jest źródłem danych, z interfejsem IMXF innego obiektu strumienia, który jest ujściem danych.

IMXF::DisconnectOutput

Odłącza ten obiekt strumienia od interfejsu IMXF innego obiektu strumienia, który jest ujściem danych.

IMXF::PutMessage

Przekazuje strukturę DMUS_KERNEL_EVENT do odbiornika danych.

IMXF::SetState

Ustawia stan strumienia.

Ponadto interfejs ISynthSinkDMus sterownika miniportu DMus udostępnia funkcje DLS dla syntetyzatorów oprogramowania. ISynthSinkDMus dziedziczy metody w interfejsie podstawowym IMXF. ISynthSinkDMus udostępnia następujące dodatkowe metody:

ISynthSinkDMus::RefTimeToSample

Konwertuje czas odniesienia na czas próby.

ISynthSinkDMus::Render

Renderuje dane falowe do buforu dla odbiornika fali.

ISynthSinkDMus::SampleToRefTime

Konwertuje czas próby na czas odniesienia.

ISynthSinkDMus::SyncToMaster

Synchronizuje zegar próbki z zegarem głównym.

Ujście fali sterownika portu wywołuje ISynthSinkDMus::Render , aby odczytać dane wave PCM generowane przez syntetyzator na podstawie strumienia wejściowego MIDI. Aby uzyskać więcej informacji na temat odbiornika fal, zobacz A Wave Sink for Kernel-Mode Syntezatory programowe.

Sterownik miniportu wywołuje następujące interfejsy w sterowniku portu DMus:

IPortDMus

IAllocatorMXF

IMasterClock

PortCls zawiera wbudowany sterownik miniportu DMus dla urządzenia MIDI z funkcją UART. Aby uzyskać więcej informacji, zobacz PcNewMiniport.