iAllocatorMXF 接口 (dmusicks.h)

接口 IAllocatorMXF 管理 DirectMusic 流的缓冲区存储。 DMus 端口驱动程序实现此接口并将其公开给 DMus 微型端口驱动程序。 DMus 端口驱动程序创建一个 IAllocatorMXF 对象,并将指向此对象的指针传递给 DMus 微型端口驱动程序的 IMiniportDMus::NewStream 方法。 IAllocatorMXF 继承自 IMXF 接口。

IAllocatorMXF 是微型端口驱动程序通过该接口与端口驱动程序的内部分配器进行通信,该 分配器分配和管理 DMUS_KERNEL_EVENT 结构池的重用。 每个结构可以包含带有时间戳的 MIDI 事件。

分配器还会抽象化存储大型事件所需的额外内存的分配。 DMUS_KERNEL_EVENT 的 uData 成员是指针大小的联合:32 位系统上有 4 个字节,64 位系统上有 8 个字节。 如果数据足够小,足以容纳该空间,则 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
标头 dmusicks.h