DMus 微型端口驱动程序

DMus 微型端口驱动程序管理高级 MIDI 设备的硬件相关功能。 这些设备支持 DirectMusic 功能,例如精度顺序器计时、可下载的声音 (DLS) 和声道组。 DMus 微型端口驱动程序可以使用 MPU-401 等设备实现高性能。 微型端口驱动程序或端口驱动程序可以根据硬件的功能处理计时。 DMus 微型端口驱动程序还可以支持生成波形输出流的软件合成器。

MIDI 硬件设备的 DMus 微型端口驱动程序应支持两个接口:

  • 微型端口接口会初始化微型端口对象并创建 MIDI 流。

  • 流接口负责管理 MIDI 流,并公开微型端口驱动程序的大多数功能。

微型端口接口 IMiniportDMus 会继承 IMiniport 接口中的方法。 IMiniportDMus 提供以下其他方法:

IMiniportDMus::Init

初始化微型端口对象。

IMiniportDMus::NewStream

创建新的流对象。

IMiniportDMus::Service

将服务请求通知给微型端口驱动程序。

流接口 IMXF 会继承 IUnknown 接口中的方法。 IMXF 提供以下其他方法:

IMXF::ConnectOutput

将这个流对象(即数据源)连接到另一个流对象(即数据接收器)的 IMXF 接口。

IMXF::DisconnectOutput

将这个流对象与另一个作为数据接收器的流对象的 IMXF 接口断开连接。

IMXF::PutMessage

DMUS_KERNEL_EVENT 结构传递给数据接收器。

IMXF::SetState

设置流的状态。

此外,DMus 微型端口驱动程序的 ISynthSinkDMus 接口为软件合成器提供 DLS 功能。 ISynthSinkDMus 会继承基接口 IMXF 中的方法。 ISynthSinkDMus 提供以下其他方法:

ISynthSinkDMus::RefTimeToSample

将参考时间转换为示例时间。

ISynthSinkDMus::Render

将波次数据呈现到波形接收器的缓冲区中。

ISynthSinkDMus::SampleToRefTime

将示例时间转换为参考时间。

ISynthSinkDMus::SyncToMaster

将示例时钟同步到主时钟。

端口驱动程序的波形接收器会调用 ISynthSinkDMus::Render 来读取合成器从其 MIDI 输入流生成的波次 PCM 数据。 有关波次接收器的详细信息,请参阅内核模式软件合成器的波次接收器

微型端口驱动程序会在 DMus 端口驱动程序上调用以下接口:

IPortDMus

IAllocatorMXF

IMasterClock

PortCls 包含具有 UART 函数的 MIDI 设备的内置 DMus 微型端口驱动程序。 有关详细信息,请参阅 PcNewMiniport