DMus 微型端口驱动程序
DMus 微型端口驱动程序管理高级 MIDI 设备的硬件相关功能。 这些设备支持 DirectMusic 功能,例如精度顺序器计时、可下载的声音 (DLS) 和声道组。 DMus 微型端口驱动程序可以使用 MPU-401 等设备实现高性能。 微型端口驱动程序或端口驱动程序可以根据硬件的功能处理计时。 DMus 微型端口驱动程序还可以支持生成波形输出流的软件合成器。
MIDI 硬件设备的 DMus 微型端口驱动程序应支持两个接口:
微型端口接口会初始化微型端口对象并创建 MIDI 流。
流接口负责管理 MIDI 流,并公开微型端口驱动程序的大多数功能。
微型端口接口 IMiniportDMus 会继承 IMiniport 接口中的方法。 IMiniportDMus 提供以下其他方法:
初始化微型端口对象。
创建新的流对象。
将服务请求通知给微型端口驱动程序。
流接口 IMXF 会继承 IUnknown 接口中的方法。 IMXF 提供以下其他方法:
将这个流对象(即数据源)连接到另一个流对象(即数据接收器)的 IMXF 接口。
将这个流对象与另一个作为数据接收器的流对象的 IMXF 接口断开连接。
将 DMUS_KERNEL_EVENT 结构传递给数据接收器。
设置流的状态。
此外,DMus 微型端口驱动程序的 ISynthSinkDMus 接口为软件合成器提供 DLS 功能。 ISynthSinkDMus 会继承基接口 IMXF 中的方法。 ISynthSinkDMus 提供以下其他方法:
ISynthSinkDMus::RefTimeToSample
将参考时间转换为示例时间。
将波次数据呈现到波形接收器的缓冲区中。
ISynthSinkDMus::SampleToRefTime
将示例时间转换为参考时间。
将示例时钟同步到主时钟。
端口驱动程序的波形接收器会调用 ISynthSinkDMus::Render 来读取合成器从其 MIDI 输入流生成的波次 PCM 数据。 有关波次接收器的详细信息,请参阅内核模式软件合成器的波次接收器。
微型端口驱动程序会在 DMus 端口驱动程序上调用以下接口:
PortCls 包含具有 UART 函数的 MIDI 设备的内置 DMus 微型端口驱动程序。 有关详细信息,请参阅 PcNewMiniport。