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 数据。 有关波接收器的详细信息,请参阅 适用于 Kernel-Mode 软件合成器的波形接收器

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

IPortDMus

IAllocatorMXF

IMasterClock

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