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 数据。 有关波接收器的详细信息,请参阅 适用于 Kernel-Mode 软件合成器的波形接收器。
微型端口驱动程序在 DMus 端口驱动程序上调用以下接口:
PortCls 包含具有 UART 函数的 MIDI 设备的内置 DMus 微型端口驱动程序。 有关详细信息,请参阅 PcNewMiniport。