我从来没有写过驱动程序,但我开始了一个开源项目,涉及创建虚拟MIDI端口,将发送MIDI数据通过网络。为此,我想我会使用WDM创建某种类型的虚拟驱动程序(除非它可以使用内核钩子?)-但作为驱动程序开发的初学者,我不知道从哪里开始。有没有人知道任何有用的资源,可以帮助我完成这个项目?或者一些类似项目的开源代码,我可以把它作为一个起点?
mwyxok5s1#
Windows MIDI驱动程序不需要在内核中实现,它们可以作为DLL完全在用户空间中实现。MSDN有一些关于您需要实现的函数的信息-Audio Device Messages for MIDI-不幸的是有些缺乏。作为NT 4 DDK的一部分,曾经有这种驱动程序的示例代码,但不幸的是,DDK / WDK的最新版本不再包含它。经过一些搜索,仍然可以找到一些更好的(虽然更旧)文档和示例代码:
0x6upsns2#
看看Dokan项目,它正在做类似的事情(但是使用了文件系统虚拟驱动程序)。当你想在Windows上创建一个新的文件系统时,例如为了改进FAT或NTFS,你需要开发一个文件系统驱动程序。在windows上开发一个内核模式的设备驱动程序是非常困难的,通过使用Dokan库,你可以很容易地创建自己的文件系统,而不需要编写设备驱动程序。Dokan Library类似于FUSE(Linux用户模式文件系统),但可以在Windows上运行。
vnzz0bqm3#
Here是WDM下驱动程序开发的良好资源汇编
vtwuwzda4#
谷歌tiamodisk...一个很好的例子。一个虚拟的SCSI迷你端口驱动程序。另一个虚拟驱动程序我知道是“文件磁盘”。如果你想要tiamodisk我可以发电子邮件
4条答案
按热度按时间mwyxok5s1#
Windows MIDI驱动程序不需要在内核中实现,它们可以作为DLL完全在用户空间中实现。
MSDN有一些关于您需要实现的函数的信息-Audio Device Messages for MIDI-不幸的是有些缺乏。
作为NT 4 DDK的一部分,曾经有这种驱动程序的示例代码,但不幸的是,DDK / WDK的最新版本不再包含它。
经过一些搜索,仍然可以找到一些更好的(虽然更旧)文档和示例代码:
0x6upsns2#
看看Dokan项目,它正在做类似的事情(但是使用了文件系统虚拟驱动程序)。
当你想在Windows上创建一个新的文件系统时,例如为了改进FAT或NTFS,你需要开发一个文件系统驱动程序。
在windows上开发一个内核模式的设备驱动程序是非常困难的,通过使用Dokan库,你可以很容易地创建自己的文件系统,而不需要编写设备驱动程序。
Dokan Library类似于FUSE(Linux用户模式文件系统),但可以在Windows上运行。
vnzz0bqm3#
Here是WDM下驱动程序开发的良好资源汇编
vtwuwzda4#
谷歌tiamodisk...一个很好的例子。一个虚拟的SCSI迷你端口驱动程序。另一个虚拟驱动程序我知道是“文件磁盘”。如果你想要tiamodisk我可以发电子邮件