
And finally in May of 2010 it has been done. Many people in the driver-development-community urged Microsoft to rectify this. Only companies incorporated could apply for such a code-signing-certificate.


Though the idea itself is pretty nifty – to know the specific company that the code running in the kernel comes from – it had a severe drawback:

One problem remained: Since Microsoft introduced Vista, all drivers for 64bit need to be code-signed. It still took quite some time to get everything going smoothly, but I finally succeeded in creating this driver. Finally I had been able to locate a guy who was doing something similar for a virtual soundcard-driver for digital-audio-broadcast. This was not satisfactory, so I looked some more and I found references to dynamic creation of sub-devices. Static meaning that the number of ports and their names would be fixed at install-time of the driver (via the inf-file of the driver). Loopback meaning that both ends of this port would be public. Nevertheless all the stuff people had done prior to my attempts would not quite achieve what my requirement were.Īll of those other virtual MIDI miniport driver implementations actually developed simple static “loopback” MIDI-ports. So that’s what I did and creating the actual driver had been not too hard after getting enough insights at the WDK-documentation. Since I had been hanging around on the wdmaudiodev mailinglist for quite some time due to my interest in kernel-streaming, I had already read quite a bit on the topic over there.Īll of the people there suggested to use the DMusUart and the MPU401 sample as a starting-point.

Only one side of the ports was supposed to be visible to the public.On-the-fly creation (and destruction) of freely nameable virtual MIDI-ports.Compatibility from Windows XP to Windows 10.Later I also used this driver when I created loopMIDI for people who only need simple loopback MIDI-ports. The necessity for virtualMIDI came along when I implemented my rtpMIDI-driver. Virtual MIDI driver for Windows 7 up to Windows 10, 32 and 64 bit with the ability to dynamically create and destroy freely nameable MIDI-ports.
