Интерфейс IAllocatorMXF (dmusicks.h)

Интерфейс IAllocatorMXF управляет хранилищем буферов для потоков DirectMusic. Драйвер порта DMus реализует этот интерфейс и предоставляет его драйверу мини-порта DMus. Драйвер порта DMus создает IAllocatorMXF объект и передает указатель на этот объект в метод IMiniport драйвера IMiniportDMus::NewStream . IAllocatorMXF наследует от интерфейса IMXF.

IAllocatorMXF — это интерфейс, через который драйвер минипорта взаимодействует с внутренним распределителем драйвера порта, который выделяет и управляет повторное использование пула DMUS_KERNEL_EVENT структур. Каждая структура может содержать событие MIDI с меткой времени.

Распределитель также абстрагирует выделение дополнительной памяти, необходимой для хранения крупных событий. Элемент uData DMUS_KERNEL_EVENT — это объединение, которое является размером указателя: четыре байта в 32-разрядной системе и восемь байтов в 64-разрядной системе. Если данные достаточно малы для размещения в этом пространстве, uData будет содержать фактические данные MIDI. Если данные для этого события больше 4-или 8-байтового указателя, однако элемент cbEvent указывает на этот факт, а uData содержит указатель на буфер, а не фактические данные MIDI. Этот буфер управляется распределителем и является константным размером для любой реализации драйвера портов.

Наследство

Интерфейс IAllocatorMXF наследует от интерфейса IUnknown . IAllocatorMXF также имеет следующие типы элементов:

Методы

Интерфейс IAllocatorMXF имеет эти методы.

 
IAllocatorMXF::GetBuffer

Метод GetBuffer выделяет буфер для длительных событий MIDI.
IAllocatorMXF::GetBufferSize

Метод GetBufferSize получает размер буфера из распределителя.
IAllocatorMXF::GetMessage

Метод GetMessage служит точкой извлечения для любого компонента режима ядра DirectMusic, который использует распределитель драйвера портов для повторного использования структур DMUS_KERNEL_EVENT.
IAllocatorMXF::P utBuffer

Этот метод в настоящее время не используется драйвером мини-порта. Метод PutBuffer передает буфер в распределитель, но это происходит автоматически при вызове IMXF::P utMessage.

Требования

Требование Ценность
целевая платформа Виндоус
Заголовок dmusicks.h