Поделиться через


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

Интерфейс IAllocatorMXF управляет буферным хранилищем для потоков DirectMusic. Драйвер порта DMus реализует этот интерфейс и предоставляет его драйверу мини-порта DMus. Драйвер порта DMus создает IAllocatorMXF объект и передает указатель на этот объект методу IMiniportDMus драйвера DMus miniport::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.

Требования

Требование Значение
Целевая платформа Windows
Header dmusicks.h