Partager via


Pilote de port DMus

Le pilote de port DMus gère un synthétiseur ou un périphérique de capture Microsoft DirectMusic. Contrairement au pilote de port MIDI, qui prend uniquement en charge les périphériques MIDI simples, le pilote de port DMus prend en charge les appareils avec des fonctionnalités MIDI avancées telles que le minutage de séquenceur de précision, les sons téléchargeables (DLS) et les groupes de canaux. Le pilote d’adaptateur implémente un pilote miniport DMus correspondant qui se lie au pilote de port DMus pour former un filtre DirectMusic (voir Filtres MIDI et DirectMusic) qui peut afficher ou capturer un flux MIDI.

Le pilote de port DMus expose une interface IPortDMus au pilote miniport. IPortDMus hérite des méthodes de l’interface de base IPort. IPortDMus fournit les méthodes supplémentaires suivantes :

IPortDMus::Notify

Avertit le pilote de port que le synthétiseur MIDI ou le périphérique de capture a avancé vers une nouvelle position dans le flux MIDI.

IPortDMus::RegisterServiceGroup

Inscrit un objet de groupe de services avec le pilote de port. Le groupe de services inscrit contient une liste d’une ou plusieurs routines de service appelées par le pilote de port lorsque le pilote miniport appelle Notify ; Pour plus d’informations, consultez Récepteur de services et Objets de groupe de services.

Le pilote de port DMus crée également un allocateur de mémoire pour chaque flux et expose l’interface IAllocatorMXF de l’allocator à l’objet stream du pilote miniport. IAllocatorMXF hérite des méthodes de l’interface de base IMXF. IAllocatorMXF fournit les méthodes supplémentaires suivantes :

IAllocatorMXF::GetBuffer

Obtient une mémoire tampon pour un événement MIDI ou une liste d’événements trop volumineux pour tenir dans une structure de DMUS_KERNEL_EVENT .

IAllocatorMXF::GetBufferSize

Obtient la taille en octets de la mémoire tampon récupérée par la méthode GetBuffer .

IAllocatorMXF::GetMessage

Obtient une mémoire tampon de messages contenant le stockage pour une structure unique de type DMUS_KERNEL_EVENT.

IAllocatorMXF::P utBuffer

Non utilisé. Les objets de port DMus et de pilote miniport communiquent entre eux via leurs interfaces IPortDMus et IMiniportMidi respectives. En outre, le pilote de port communique avec les objets de flux du pilote miniport via leurs interfaces IMXF , et l’objet de flux d’un pilote miniport communique avec l’allocateur du pilote de port via son interface IAllocatorMXF .

Pour plus d’informations sur la prise en charge des pilotes pour DirectMusic, consultez Vue d’ensemble du pilote Synthétiseur Miniport.

Dans Windows XP et versions ultérieures, les interfaces IPortDMus et IPortMidi sont implémentées dans un seul module de pilote interne. Cette consolidation est facilitée par la similitude de ces deux interfaces. Par exemple, les mêmes méthodes sont définies pour les deux interfaces. Les applications écrites pour des versions antérieures de Windows ne doivent voir aucun changement dans le comportement des interfaces IPortMidi et IPortDMus résultant de la consolidation des pilotes de port MIDI et DMus.