Interfaccia IAllocatorMXF (dmusicks.h)

L'interfaccia gestisce l'archiviazione IAllocatorMXF buffer per i flussi DirectMusic. Il driver di porta DMus implementa questa interfaccia e la espone al driver miniport DMus. Il driver di porta DMus crea un IAllocatorMXF oggetto e passa un puntatore a questo oggetto al metodo IMiniportDMus::NewStream del driver DMus miniport. IAllocatorMXF eredita dall'interfaccia IMXF .

IAllocatorMXF è l'interfaccia tramite cui il driver miniport comunica con l'allocatore interno del driver di porta, che alloca e gestisce il riutilizzo di un pool di strutture DMUS_KERNEL_EVENT . Ogni struttura può contenere un evento MIDI con timestamp.

L'allocatore astrae anche l'allocazione della memoria aggiuntiva necessaria per archiviare eventi di grandi dimensioni. Il membro uData di DMUS_KERNEL_EVENT è un'unione che corrisponde alle dimensioni di un puntatore: quattro byte in un sistema a 32 bit e otto byte in un sistema a 64 bit. Se i dati sono sufficientemente piccoli da adattarsi a tale spazio, uData conterrà i dati MIDI effettivi. Se i dati per tale evento sono maggiori del puntatore a 4 o 8 byte, tuttavia, il membro cbEvent indica questo fatto e uData contiene un puntatore a un buffer anziché i dati MIDI effettivi. Questo buffer viene gestito dall'allocatore ed è una dimensione costante per qualsiasi implementazione del driver di porta.

Ereditarietà

L'interfaccia IAllocatorMXF eredita dall'interfaccia IUnknown . IAllocatorMXF include anche questi tipi di membri:

Metodi

L'interfaccia IAllocatorMXF include questi metodi.

 
IAllocatorMXF::GetBuffer

Il metodo GetBuffer alloca un buffer per eventi MIDI lunghi.
IAllocatorMXF::GetBufferSize

Il metodo GetBufferSize ottiene le dimensioni del buffer dall'allocatore.
IAllocatorMXF::GetMessage

Il metodo GetMessage funge da punto di recupero per qualsiasi componente in modalità kernel DirectMusic che utilizza l'allocatore del driver di porta per riutilizzare DMUS_KERNEL_EVENT strutture.
IAllocatorMXF::P utBuffer

Questo metodo non è attualmente utilizzato dal driver miniport. Il metodo PutBuffer passa un buffer all'allocatore, ma questo avviene automaticamente quando IMXF::P utMessage viene comunque chiamato.

Requisiti

Requisito Valore
Piattaforma di destinazione Windows
Intestazione dmusicks.h