Hi Tobias, I can't comment much until others have responded regarding your dynamic requirements; my only experience is with static ports. I didn't need a topology driver. In fact I didn't even need any nodes, only pins. Regards, Steve. -----Original Message----- From: Tobias Erichsen <erichsen@xxxxxxxxxxxxx> To: wdmaudiodev@xxxxxxxxxxxxx Sent: Fri, 27 Mar 2009 17:27 Subject: [wdmaudiodev] AW: Re: Generic Virtual MIDI-driver... Hi everyone, I also hope that some of the experts chime in. Especially some feedback from the MS-guys who are here on this list would be appreciated. Not to say that I wouldn't appreciate your feedback as well :-) I'm currently working on a small stub-driver that is based on MPU-401, DMusUART (and some hints from DDKSynth & MSVAD) and I intend to add to this driver until my mission is fulfilled ;-) I'm creating my INF-file by taking hints from the MSVAD-inf and some other INFs I found for MIDI-drivers on the net... I have a couple of questions concerning my quest: 1. Is it possible to write such a driver & the corresponding INF-file that installs, but initially does not register any subdevices? What would I need to specify in the INF-file to get this going? 2. Do I need a topology for this kind of driver - I think I read somew here that for simple MIDI-drivers a topology would not be necessary. 3. As I intend to have "real" dynamic sub-devices, I cannot specify any friendly-names within the INF-file, as I don't have any information about what those would be when the port is added later on. How would I go about implementing this? 4. If I understand the documenation correctly the custom KS properties reference existing sub-devices. As I intend to create those subdevices dynamically, I would figure that I would need to go the way as to implement custom IOCTLs & hooking the appropriate functions & structures in the driver-entry (hen & egg problem) - is this assessment correct? =C 2� That is all for now, but I will probably have many more questions on my way... Best regards, Tobias PS.: I hope I don't stress too many peoples nerves too much, but like I wrote I'm a newbie concerning the KS-driver-implementation and this stuff is not for the faint-at-heart... Von: wdmaudiodev-bounce@xxxxxxxxxxxxx [mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] Im Auftrag von stevejet@xxxxxxxxxxxx Gesendet: Montag, 23. März 2009 18:13 An: wdmaudiodev@xxxxxxxxxxxxx Betreff: [wdmaudiodev] Re: Generic Virtual MIDI-driver... Hello Tobias, I have just written a driver similar to this to replace the earlier one I 20mentioned in my post of March 2nd. The driver provides 1 MIDI input port (omni) and 2 MIDI output ports (32 channels) for the sequencer. My DXi host feeds the input port and renders the output ports using buffers written and read using METHOD_BUFFERED IOCTLs. I hope that you get help from the experts, but if not, I'll do what I can. Regards, Steve. -----Original Message----- From: Tobias Erichsen <erichsen@xxxxxxxxxxxxx> To: wdmaudiodev@xxxxxxxxxxxxx Sent: Mon, 23 Mar 2009 12:25 Subject: [wdmaudiodev] Generic Virtual MIDI-driver... Hi everyone, like I wrote in my last mail from Friday I would highly welcome a c omplete MIDI-driver- sample that implements the following functionality: - Software-only (like MSVAD) - Private interface for applications (either by custom KS properties or private IOCTLs) - Dynamically creatable/destroyable MIDI-ports with freely configurable friendly-name without the need for any reboots - the created MIDI-Port is accessible to all kinds of standard application through the standard interfaces like "old-school" MME API, DirectX... - The "backend" / "virtual-hardware" side of the MIDI-port is implemented by the application (if someone needs some clarification on how this would work, I can provide with a more thor ough description) This kind of driver would allow for all kind of cool functionality: - DAW-applications could create MIDI-ports on demand to interface to other stand-alone applications for MIDI-message-exchange - Special-operation MIDI-port(s) can be created by just writing a simple user-space application or service. Making a multitude of functions possible like: - MIDI-over-NET tunneling - MIDI-patchbays - MIDI-filters Apart from the "real-world" uses, the driver-writer-community has some benefits as well - For many applications the need of writing a driver would be eliminated totally! - Serve as a blueprint for othe r driver-writers on how to implement this functionality - Functionality that has not been that well documented (like dynmaic creation of ports, dynamic friendly-names etc.) can be deduced rather easily by browsing this sample. It would by highly convenient if such driver could be incorporated into the standard-shipment of the next Windows OS version. In the last couple of years (and especially in the last months) a large number of companies & individuals have asked many times for information about writing drivers which each implement some of the functionality I have sketched out above - having a generic driver which implem ents the sum of all those request would really bring forward the DAW-community (both on the developer & on the user side) I would be willing to start up such an endeavor but I must admit that apart from having written several device-drivers (in other areas) already, I have no intimate knowledge about the imple- mentation of the kernel-streaming-mechanisms on the driver side - so any help from other interested parties would be highly welcome. Especially the area of private-interfaces and dynamic creation/destruction of ports with a free friendlyname is something that is still a closed book to me... I have thought abo ut a driver that would be called VMIDI.SYS implementing the functionality described above and also having a matching DLL: VMIDI.DLL which creates an easy to use user- space DLL for applications to interface to this driver in a standard-way. So any feedback on this subject is highly welcome (hopefully some of the folks who have asked for such stuff in the past are still monitoring this mailing-list to get feedback if this contemplated driver would implement most/all of what they were trying to achieve :-) Best regards, Tobias ****************** WDMAUDIODEV addresses: Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx 0A Subscribe: mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe Unsubscribe: mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe Moderator: mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx URL to WDMAUDIODEV page: http://www.wdmaudiodev.com/