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 时,会自动发生这种情况。

要求

要求 价值
目标平台 窗户
标头 dmusicks.h