Pergunta

I've never written drivers before but I'm starting an open-source project that involves creating virtual MIDI ports that will send the MIDI data over a network.

For this, I presume I would be creating some sort of virtual driver using WDM (unless it's possible with kernel hooks?) - but being a beginner to driver development I don't know where to begin.

Does anyone know any useful resources that would help me with this project? Or some open-source code from a similar project that I could fork as a starting point?

Foi útil?

Solução

Windows MIDI drivers do not need to be implemented in the kernel, they can be implemented entirely in userspace as DLLs.

MSDN has some information about the functions you need to implement - Audio Device Messages for MIDI - unfortunately it is somewhat lacking.

There used to be sample code for this kind of driver, as part of the NT4 DDK, but more recent releases of the DDK / WDK unfortunately don't include it any more.

Some better (though older) documentation and sample code can still be found after some searching:

Outras dicas

Check out the Dokan project, it is doing something similar (but with a File System virtual driver).

When you want to create a new file system on Windows, for example to improve FAT or NTFS, you need to develop a file system driver.

Developing a device driver that works in kernel mode on windows is extremely difficult.By using Dokan library, you can create your own file systems very easily without writing device driver.

Dokan Library is similar to FUSE(Linux user mode file system) but works on Windows.

Here is good resources compilation on driver development under WDM

google tiamodisk...an excellent eg. of a virtual SCSI miniport driver. another virtual driver I know is "Filedisk". if u want tiamodisk I can e-mail

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top