Driver porta DMus
Il driver di porta DMus gestisce un sintetizzatore o un dispositivo di acquisizione Microsoft DirectMusic. A differenza del driver di porta MIDI, che supporta solo semplici dispositivi MIDI, il driver di porta DMus supporta i dispositivi con funzionalità MIDI avanzate, ad esempio tempi di precisione sequencer, suoni scaricabili (DLS) e gruppi di canali. Il driver dell'adattatore implementa un driver miniport DMus corrispondente che si associa al driver di porta DMus per formare un filtro DirectMusic (vedi filtri MIDI e DirectMusic) in grado di eseguire il rendering o acquisire un flusso MIDI.
Il driver di porta DMus espone un'interfaccia IPortDMus al driver miniport. IPortDMus eredita i metodi nell'interfaccia di base IPort. IPortDMus fornisce i metodi aggiuntivi seguenti:
Notifica al driver di porta che il sintetizzatore MIDI o il dispositivo di acquisizione ha avanzato a una nuova posizione nel flusso MIDI.
IPortDMus::RegisterServiceGroup
Registra un oggetto gruppo di servizi con il driver della porta. Il gruppo di servizi registrato contiene un elenco di una o più routine di servizio chiamate dal driver di porta quando il driver miniport chiama Notify; per altre informazioni, vedere Oggetti sink del servizio e del gruppo di servizi.
Il driver di porta DMus crea anche un allocatore di memoria per ogni flusso ed espone l'interfaccia IAllocatorMXF dell'allocatore all'oggetto flusso del driver miniport. IAllocatorMXF eredita i metodi nell'interfaccia di base IMXF. IAllocatorMXF fornisce i metodi aggiuntivi seguenti:
Ottiene un buffer per un evento MIDI o un elenco di eventi troppo grandi per adattarsi a una struttura DMUS_KERNEL_EVENT .
Ottiene le dimensioni in byte del buffer recuperato dal metodo GetBuffer .
Ottiene un buffer di messaggi contenente l'archiviazione per una singola struttura di tipo DMUS_KERNEL_EVENT.
Non usato. Gli oggetti driver porta e miniport DMus comunicano tra loro tramite le rispettive interfacce IPortDMus e IMiniportMidi . Inoltre, il driver di porta comunica con gli oggetti flusso del driver miniport tramite le interfacce IMXF e l'oggetto flusso di un driver miniport comunica con l'allocatore del driver di porta tramite l'interfaccia IAllocatorMXF .
Per altre informazioni sul supporto dei driver per DirectMusic, vedere Cenni preliminari sul driver Miniport di Sintetizzatore.
In Windows XP e versioni successive, le interfacce IPortDMus e IPortMidi sono entrambe implementate in un singolo modulo driver interno. Questo consolidamento è facilitato dalla somiglianza di queste due interfacce. Ad esempio, gli stessi metodi vengono definiti per entrambe le interfacce. Le applicazioni scritte per le versioni precedenti di Windows non dovrebbero modificare il comportamento delle interfacce IPortMidi e IPortDMus risultanti dal consolidamento dei driver di porta MIDI e DMus.