Interfaz IAllocatorMXF (dmusicks.h)
La IAllocatorMXF
interfaz administra el almacenamiento en búfer de las secuencias de DirectMusic. El controlador de puerto DMus implementa esta interfaz y la expone al controlador de miniporte DMus. El controlador de puerto DMus crea un IAllocatorMXF
objeto y pasa un puntero a este objeto al método IMiniportDMus::NewStream del controlador de miniporte DMus. IAllocatorMXF
hereda de la interfaz IMXF .
IAllocatorMXF
es la interfaz a través de la cual el controlador de minipuerto se comunica con el asignador interno del controlador de puerto, que asigna y administra la reutilización de un grupo de estructuras de DMUS_KERNEL_EVENT . Cada estructura puede contener un evento MIDI con marca de tiempo.
El asignador también abstrae la asignación de la memoria adicional necesaria para almacenar eventos grandes. El miembro uData de DMUS_KERNEL_EVENT es una unión que es el tamaño de un puntero: cuatro bytes en un sistema de 32 bits y ocho bytes en un sistema de 64 bits. Si los datos son lo suficientemente pequeños como para caber en ese espacio, uData contendrá los datos MIDI reales. Si los datos de ese evento son mayores que el puntero de 4 o 8 bytes, sin embargo, el miembro cbEvent indica este hecho y uData contiene un puntero a un búfer en lugar de los datos MIDI reales. El asignador administra este búfer y es un tamaño constante para cualquier implementación del controlador de puerto.
La interfaz IAllocatorMXF hereda de la interfaz IUnknown . IAllocatorMXF también tiene estos tipos de miembros:
La interfaz IAllocatorMXF tiene estos métodos.
IAllocatorMXF::GetBuffer El método GetBuffer asigna un búfer para eventos MIDI largos. |
IAllocatorMXF::GetBufferSize El método GetBufferSize obtiene el tamaño del búfer del asignador. |
IAllocatorMXF::GetMessage El método GetMessage sirve como punto de recuperación para cualquier componente de modo kernel de DirectMusic que utilice el asignador del controlador de puerto para reutilizar DMUS_KERNEL_EVENT estructuras. |
IAllocatorMXF::P utBuffer Actualmente, el controlador de miniport no usa este método. El método PutBuffer pasa un búfer al asignador, pero esto se produce automáticamente cuando se llama a IMXF::P utMessage de todos modos. |
Requisito | Value |
---|---|
Plataforma de destino | Windows |
Encabezado | dmusicks.h |