MIDI 的音频设备消息

在 Windows XP 及更高版本的 Windows ((包括 Windows Vista) )中,操作系统使用音频设备消息与仪表数字接口 (MIDI) 输入和输出驱动程序通信。

每个 MIDI 输入和输出驱动程序都必须具有一个 DriverProc 入口点函数才能启用或禁用驱动程序。 此外,它还必须具有额外的入口点函数,以处理来自Windows的消息。 对于 MIDI 输出驱动程序,其他入口点函数为 modMessage,必须由 MIDI 设备的制造商提供。 此函数处理 WINMM 发送到 MIDI 输出驱动程序的消息。 WINMM 是一Windows DLL (模块) 动态链接库,其中包含可帮助操作系统和 MIDI 输出驱动程序相互通信的函数。 具体而言,WINMM 有助于管理在 Windows 上运行的 16 位多媒体应用程序。

modMessage 函数接收的每条消息附带两个指向 DWORD 变量的 (DWORD_PTR) 。 对于某些消息,其中一个参数指向包含来自客户端的其他信息的结构,或者指向一个空结构,供驱动程序使用客户端信息填充。 此类结构的一个示例是 MIDIOPENDESC。 MIDI 输出设备驱动程序还使用了另外两种结构,这些结构在 WINDOWS SDK 中进行讨论。 有关这些结构的信息,请参阅 MIDIHDRMIDIOUTCAPS

下面是音频设备消息的列表,以及用于为 MIDI 输出驱动程序处理这些消息的 modMessage 入口点函数:

modMessage

MODM_CACHEDRUMPATCHES

MODM_CACHEPATCHES

MODM_DATA

MODM_GETDEVCAPS

MODM_GETNUMDEVS

MODM_GETPOS

MODM_GETVOLUME

MODM_LONGDATA

MODM_OPEN

MODM_PAUSE

MODM_PREPARE

MODM_PROPERTIES

MODM_RESET

MODM_RESTART

MODM_SETVOLUME

MODM_STOP

MODM_STRMDATA

MODM_UNPREPARE

MOM_CLOSE

MOM_DONE

MOM_OPEN