Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ein DMus Miniport-Treiber verwaltet die hardwareabhängigen Funktionen erweiterter MIDI-Geräte. Diese Geräte unterstützen DirectMusic-Funktionen, z. B. präzise Sequenzeranzeigedauer, herunterladbare Sounds (DLS) und Kanalgruppen. DMus Miniport-Treiber können hohe Leistung mit Geräten wie MPU-401 erzielen. Das Timing kann entweder vom Miniporttreiber oder vom Porttreiber behandelt werden, je nach den Fähigkeiten der Hardware. Ein DMus-Miniporttreiber kann auch einen Softwaresynthesizer unterstützen, der einen Wellenausgangsstrom generiert.
Ein DMus-Miniporttreiber für ein MIDI-Hardwaregerät sollte zwei Schnittstellen unterstützen:
Die Miniportschnittstelle initialisiert das Miniportobjekt und erstellt MIDI-Streams.
Die Streamschnittstelle verwaltet einen MIDI-Stream und macht die meisten Funktionen des Miniporttreibers verfügbar.
Die Miniportschnittstelle IMiniportDMus erbt die Methoden in der IMiniport-Schnittstelle . IMiniportDMus stellt die folgenden zusätzlichen Methoden bereit:
Initialisiert das Miniportobjekt.
Erstellt ein neues Streamobjekt.
Benachrichtigt den Miniporttreiber über eine Serviceanfrage.
Die Streamschnittstelle IMXF erbt die Methoden in der IUnknown-Schnittstelle . IMXF stellt die folgenden zusätzlichen Methoden bereit:
Verbindet dieses Datenstromobjekt, bei dem es sich um eine Datenquelle handelt, mit der IMXF-Schnittstelle eines anderen Datenstromobjekts, bei dem es sich um eine Datensenke handelt.
Trennt dieses Datenstromobjekt von der IMXF-Schnittstelle eines anderen Datenstromobjekts, das eine Datensenke ist.
Übergibt eine DMUS_KERNEL_EVENT Struktur an die Datensenke.
Legt den Status des Datenstroms fest.
Darüber hinaus bietet die ISynthSinkDMus-Schnittstelle des DMus miniport-Treibers DLS-Funktionen für Softwaresynthesizer. ISynthSinkDMus erbt die Methoden in der Basisschnittstelle IMXF. ISynthSinkDMus stellt die folgenden zusätzlichen Methoden bereit:
ISynthSinkDMus::RefTimeToSample
Konvertiert eine Referenzzeit in eine Beispielzeit.
Rendert Wellendaten in einen Puffer für die Wellenspüle.
ISynthSinkDMus::SampleToRefTime
Konvertiert eine Beispielzeit in eine Referenzzeit.
Synchronisiert die Beispieluhr mit der Masteruhr.
Die Wellenspüle des Porttreibers ruft ISynthSinkDMus::Render auf, um die Wave PCM-Daten zu lesen, die der Synthesizer aus seinem MIDI-Eingabedatenstrom generiert. Weitere Informationen über den "Wave Sink" finden Sie in "Ein Wave Sink für Kernel-Mode Software-Synthesizer".
Der Miniporttreiber ruft die folgenden Schnittstellen auf dem DMus-Porttreiber auf:
PortCls enthält einen integrierten DMus-Miniporttreiber für ein MIDI-Gerät mit einer UART-Funktion. Weitere Informationen finden Sie unter PcNewMiniport.