Interface IAllocatorMXF (dmusicks.h)

L’interface IAllocatorMXF gère le stockage de mémoire tampon pour les flux DirectMusic. Le pilote de port DMus implémente cette interface et l’expose au pilote miniport DMus. Le pilote de port DMus crée un IAllocatorMXF objet et transmet un pointeur vers cet objet vers la méthode IMiniportDMus ::NewStream du pilote miniport DMus. IAllocatorMXF hérite de l’interface IMXF .

IAllocatorMXF est l’interface via laquelle le pilote miniport communique avec l’allocateur interne du pilote de port, qui alloue et gère la réutilisation d’un pool de structures DMUS_KERNEL_EVENT . Chaque structure peut contenir un événement MIDI horodaté.

L’allocateur extrait également l’allocation de la mémoire supplémentaire nécessaire pour stocker des événements volumineux. Le membre uData de DMUS_KERNEL_EVENT est une union de la taille d’un pointeur : quatre octets sur un système 32 bits et huit octets sur un système 64 bits. Si les données sont suffisamment petites pour tenir dans cet espace, uData contient les données MIDI réelles. Si les données de cet événement sont supérieures au pointeur de 4 ou 8 octets, toutefois, le membre cbEvent indique ce fait et uData contient un pointeur vers une mémoire tampon au lieu des données MIDI réelles. Cette mémoire tampon est gérée par l’allocateur et est une taille constante pour toute implémentation de pilote de port.

Héritage

L’interface IAllocatorMXF hérite de l’interface IUnknown. IAllocatorMXF a également les types de membres suivants :

Méthodes

L’interface IAllocatorMXF a ces méthodes.

 
IAllocatorMXF ::GetBuffer

La méthode GetBuffer alloue une mémoire tampon pour les événements MIDI longs.
IAllocatorMXF ::GetBufferSize

La méthode GetBufferSize obtient la taille de la mémoire tampon à partir de l’allocateur.
IAllocatorMXF ::GetMessage

La méthode GetMessage sert de point de récupération pour tout composant DirectMusic en mode noyau qui utilise l’allocateur du pilote de port pour réutiliser DMUS_KERNEL_EVENT structures.
IAllocatorMXF ::P utBuffer

Cette méthode n’est actuellement pas utilisée par le pilote miniport. La méthode PutBuffer transmet une mémoire tampon à l’allocateur, mais cela se produit automatiquement quand IMXF ::P utMessage est appelé quand même.

Configuration requise

Condition requise Valeur
Plateforme cible Windows
En-tête dmusicks.h