Pilote DMus Miniport
Un pilote miniport DMus gère les fonctions dépendantes du matériel des périphériques MIDI avancés. Ces appareils prennent en charge les fonctionnalités DirectMusic telles que le minutage de séquenceur de précision, les sons téléchargeables (DLS) et les groupes de canaux. Les pilotes miniport DMus peuvent obtenir des performances élevées avec des appareils tels que MPU-401. Le minutage peut être géré par le pilote miniport ou le pilote de port, en fonction des capacités du matériel. Un pilote miniport DMus peut également prendre en charge un synthétiseur logiciel qui génère un flux de sortie d’onde.
Un pilote miniport DMus pour un périphérique matériel MIDI doit prendre en charge deux interfaces :
L’interface miniport initialise l’objet miniport et crée des flux MIDI.
L’interface de flux gère un flux MIDI et expose la plupart des fonctionnalités du pilote miniport.
L’interface miniport, IMiniportDMus, hérite des méthodes de l’interface IMiniport . IMiniportDMus fournit les méthodes supplémentaires suivantes :
Initialise l’objet miniport.
Crée un objet de flux.
Avertit le pilote miniport d’une demande de service.
L’interface de flux, IMXF, hérite des méthodes de l’interface IUnknown . IMXF fournit les méthodes supplémentaires suivantes :
Connecte cet objet de flux, qui est une source de données, à l’interface IMXF d’un autre objet de flux, qui est un récepteur de données.
Déconnecte cet objet de flux de l’interface IMXF d’un autre objet de flux qui est un récepteur de données.
Transmet une structure DMUS_KERNEL_EVENT au récepteur de données.
Définit l’état du flux.
En outre, l’interface ISynthSinkDMus du pilote miniport DMus fournit des fonctionnalités DLS pour les synthétiseurs logiciels. ISynthSinkDMus hérite des méthodes de l’interface de base IMXF. ISynthSinkDMus fournit les méthodes supplémentaires suivantes :
ISynthSinkdMus::RefTimeToSample
Convertit une heure de référence en une heure d’exemple.
Restitue les données d’onde dans une mémoire tampon pour le récepteur d’ondes.
ISynthSinkDMus::SampleToRefTime
Convertit un exemple d’heure en heure de référence.
Synchronise l’exemple d’horloge avec l’horloge master.
Le récepteur d’ondes du pilote de port appelle ISynthSinkDMus::Render pour lire les données PCM d’onde générées par le synthétiseur à partir de son flux d’entrée MIDI. Pour plus d’informations sur le récepteur d’ondes, consultez Un récepteur de vagues pour Kernel-Mode synthétiseurs logiciels.
Le pilote miniport appelle les interfaces suivantes sur le pilote de port DMus :
PortCls contient un pilote miniport DMus intégré pour un périphérique MIDI avec une fonction UART. Pour plus d’informations, consultez PcNewMiniport.