模拟MIDI设备 - Windows

use*_*998 6 windows midi driver device

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

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

b)通过我的驱动程序将MIDI数据直接发送到我的应用程序,这可能会太大而不能成为驱动程序本身.

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

Nic*_*ell 8

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

MSDN有一些关于你需要实现的功能的信息 - 用于MIDI的音频设备消息 - 遗憾的是它有点缺乏.

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

在搜索之后仍然可以找到一些更好(尽管更旧)的文档和示例代码:


MSa*_*ers 2

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

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

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