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.
Der DMus-Porttreiber verwaltet ein Microsoft DirectMusic-Synthesizer oder Aufnahmegerät. Im Gegensatz zum MIDI-Porttreiber, der nur einfache MIDI-Geräte unterstützt, unterstützt der DMus-Porttreiber Geräte mit erweiterten MIDI-Funktionen wie Precision Sequencer Timing, herunterladbare Sounds (DLS) und Kanalgruppen. Der Adaptertreiber implementiert einen entsprechenden DMus-Miniporttreiber , der an den DMus-Porttreiber gebunden wird, um einen DirectMusic-Filter (siehe MIDI- und DirectMusic-Filter) zu bilden, der einen MIDI-Stream rendern oder erfassen kann.
Der DMus-Porttreiber macht dem Miniporttreiber eine IPortDMus-Schnittstelle verfügbar. IPortDMus erbt die Methoden in IPort der Basisschnittstelle. IPortDMus stellt die folgenden zusätzlichen Methoden bereit:
Benachrichtigt den Porttreiber, dass der MIDI-Synthesizer oder das Aufnahmegerät zu einer neuen Position im MIDI-Stream fortgeschritten ist.
IPortDMus::RegisterServiceGroup
Registriert ein Dienstgruppenobjekt mit dem Porttreiber. Die registrierte Dienstgruppe enthält eine Liste einer oder mehrerer Dienstroutinen, die vom Porttreiber aufgerufen werden, wenn der Miniporttreiber "Notify" aufruft; weitere Informationen finden Sie unter Service Sink und Service Group Objects.
Der DMus-Porttreiber erstellt auch einen Speicherverteiler für jeden Datenstrom und macht die IAllocatorMXF-Schnittstelle des Allocators für das Datenstromobjekt des Miniporttreibers verfügbar. IAllocatorMXF erbt die Methoden in der Basisschnittstelle IMXF. IAllocatorMXF stellt die folgenden zusätzlichen Methoden bereit:
Ruft einen Puffer für ein MIDI-Ereignis oder eine Liste von Ereignissen ab, die zu groß sind, um in eine DMUS_KERNEL_EVENT-Struktur zu passen.
Ruft die Größe in Byte des Puffers ab, der von der GetBuffer -Methode abgerufen wird.
Ruft einen Nachrichtenpuffer ab, der Speicher für eine einzelne Struktur vom Typ DMUS_KERNEL_EVENT enthält.
Nicht verwendet. Die DMus-Port- und Miniporttreiberobjekte kommunizieren über die jeweiligen IPortDMus - und IMiniportMidi-Schnittstellen miteinander. Darüber hinaus kommuniziert der Porttreiber mit den Streamobjekten des Miniporttreibers über seine IMXF-Schnittstellen , und ein Streamobjekt eines Miniporttreibers kommuniziert mit dem Porttreiber-Allocator über seine IAllocatorMXF-Schnittstelle .
Weitere Informationen zur Treiberunterstützung für DirectMusic finden Sie unter Synthesizer Miniport Driver Overview.
In Windows XP und höher werden die IPortDMus - und IPortMidi-Schnittstellen in einem einzigen internen Treibermodul implementiert. Diese Konsolidierung wird durch die Ähnlichkeit dieser beiden Schnittstellen erleichtert. Beispielsweise werden die gleichen Methoden für beide Schnittstellen definiert. Anwendungen, die für frühere Versionen von Windows geschrieben wurden, sollten keine Änderung des Verhaltens der IPortMidi - und IPortDMus-Schnittstellen sehen, die sich aus der Konsolidierung der MIDI- und DMus-Porttreiber ergeben.