6

我需要一些关于 Windows 编程、MIDI 和 WDM 的建议。我正在尝试编写一个小型应用程序,该应用程序将位于系统托盘中,并作为 MIDI 输入/输出设备向系统宣传,以便 MIDI 程序可以发送给它,并将消息转换为不同的格式。我一直在阅读 Cant 的 WDM 书并搜索有关编写设备驱动程序的信息,但不知道我是否走在正确的道路上。我还没有看到如何: -

a) 将我的驱动程序注册为支持 MIDI (我是否在注册表中粘贴了一个 ref 并让操作系统将 MIDI 调用定向到 dll 中的功能?)

b) 通过我的驱动程序将 MIDI 数据引导到我的应用程序,这可能太大而不能成为驱动程序本身。

任何关于从哪里开始的建议将不胜感激。谢谢,皮特

4

3 回答 3

8

Windows MIDI 驱动程序不需要在内核中实现,它们可以完全在用户空间中作为 DLL 实现。

MSDN 有一些关于您需要实现的功能的信息 - MIDI 的音频设备消息- 不幸的是它有些缺乏。

曾经有这种驱动程序的示例代码,作为 NT4 DDK 的一部分,但不幸的是,最新版本的 DDK / WDK 不再包含它。

经过一番搜索,仍然可以找到一些更好(虽然较旧)的文档和示例代码:

于 2010-12-22T23:14:54.000 回答
2

设备由设备驱动程序枚举(或模拟),而不是应用程序。您在系统托盘中看到的是一个应用程序图标。因此,您将需要同时拥有驱动程序和应用程序 - 您不能让一点编译代码同时充当两者。

在驱动程序方面,您可能想看看MSDN 文档。这将回答 yopur 问题的 (a) 部分。

假设您仍然想继续,(b) 最好让您的应用程序从驱动程序中提取数据。这比其他方式容易得多 - 应用程序可以轻松找到驱动程序,但驱动程序在查找特定应用程序(进程)时遇到很大问题

于 2010-07-01T13:48:54.207 回答
0

如果您正在寻找一种更简单的入门方法,那里有一个 MIDI 环回驱动程序,并且制作它的人还提供(或曾经提供)它的一个版本,允许您的程序直接与驱动程序通信. 这为您提供了您正在寻找的行为,其中程序显示为 MIDI 设备。环回驱动程序位于http://nerds.de/en/loopbe1.html。我不再看到开发人员页面,但是如果您与他们联系,您也许可以购买驱动程序的许可证,您可以直接访问而无需环回。

于 2010-07-13T21:30:59.247 回答