Partager via


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 :

IMiniportdMus::init

Initialise l’objet miniport.

IMiniportDMus::NewStream

Crée un objet de flux.

IMiniportDMus::Service

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 :

IMXF::ConnectOutput

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.

IMXF::D isconnectOutput

Déconnecte cet objet de flux de l’interface IMXF d’un autre objet de flux qui est un récepteur de données.

IMXF::P utMessage

Transmet une structure DMUS_KERNEL_EVENT au récepteur de données.

IMXF::SetState

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.

ISynthSinkDMus::Render

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.

ISynthSinkDMus::SyncToMaster

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 :

IPortDMus

IAllocatorMXF

IMasterClock

PortCls contient un pilote miniport DMus intégré pour un périphérique MIDI avec une fonction UART. Pour plus d’informations, consultez PcNewMiniport.