Hi Tim, great to see you're still around ;) I chose those three interfaces after reading this MSDN article, which states that raw MIDI processing devices should not ue KSCATEGORY_SYNTHESIZER: http://msdn.microsoft.com/en-us/library/windows/hardware/ff536813%28v=vs.85%29.aspx The Wave name indeed originates from copy and paste ;) Eugene's mail was a great push in the right direction, I'm looking more into driver installation now, which seems to be a whole world for itself. Eugenes code was a good starting point but needs alot of adapting. I'm still a little confused about all the different concepts (e.g. whenever i stumble across PNP-Manager references in MSDN I think 'uh well but there is no hardware'!, or should i use SetupAPI or the Driver Installer Framework). It's hard to fit all together. Currently I'm writing a driver installer application that will install the driver and its interfaces properly (as opposed to devcon), I'll probably need the help of co-installers as well. Good news is I got remote kernel debugging working to my VM via a virtual serial port, that should make things alot easier. I'm going to reply again as soon as I got more precise questions, if you got any more hints or tipps, please feel free to contribute :) Regards, Max Date: Wed, 5 Jun 2013 09:42:28 -0700 From: timr@xxxxxxxxx To: wdmaudiodev@xxxxxxxxxxxxx Subject: [wdmaudiodev] Re: StartDevice Empty Resource List? Revan Foly wrote: ... I now have been able to use the DMusUART and MPU401 adapter Sample to create an installable driver that frankly does nothing so far. I understand quite a bit of whats going on in the miniport part of the driver and stripped the DMusUART sample of most hardware related stuff. Where I'm stuck now is the part where the virtual Device ist started and the MIDI ports are created (i.e. the MIDI Pin of the miniport driver is connected to a resource i believe). As opposed to Tobias' virtualMIDI driver, i do not require dynamic creation of ports, so I added an interfaces section to my inf file: [vmidi.NTamd64.Interfaces] AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Wave%,vmidi.Wave AddInterface=%KSCATEGORY_RENDER%,%KSNAME_Wave%,vmidi.Wave AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_Wave%,vmidi.Wave If you are a MIDI device, you probably want KSCATEGORY_SYNTHESIZER. I'm not sure you want KSCATEGORY_CAPTURE. Did you copy this from a WAVE INF file, or from another MIDI INF file? [vmidi.Wave.AddReg] HKR,,CLSID,,%Proxy.CLSID% HKR,,FriendlyName,,"VMIDI Wave" You are not a WAVE device. The friendly name should probably not say so. And indeed DbgView shows that the system is calling the startDevice function of the adapterpart of the driver, however apparently the ResourceList is empty and therefore no Miniport is created. If i circumpass the if checking the ResourceList for entries, I create a bluescreen. This is a virtual device, right? Why would you expect to have any resources at all? -- Tim Roberts, timr@xxxxxxxxx Providenza & Boekelheide, Inc.