Revan Foly wrote: > > 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 > <http://msdn.microsoft.com/en-us/library/windows/hardware/ff536813%2528v=vs.85%2529.aspx> OK, you talked me into it. > 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'!, The key point is to think about how you get loaded. With a non-PnP driver, you have to be loaded explicitly by someone, using the Service Manager (such as "net start"). With a PnP driver, you get loaded automatically when your INF file matches the hardware ID on a newly created PDO. Some bus driver somewhere has to create that PDO. With virtual devices, that's often done with "devcon install". PnP can't tell the difference between a new PCI device and a new virtual device. So, the "hardware" part really is irrelevant. Once you are a PnP device, you play all the same games that a real hardware driver plays. Your bus driver isn't going to hand you any memory or interrupt resources, but you get all the other requests (like power management). > or should i use SetupAPI or the Driver Installer Framework). It's hard > to fit all together. For a PnP device, you have to get your driver copied onto the system's hard disk ("pre-install"), and someone has to create the PDO to trigger your loading. I use DPInst to do my pre-installs, but you'll need some other tool to trigger the creation of a PDO. The Setup APIs can do that (see the source for "devcon install" for an example). -- Tim Roberts, timr@xxxxxxxxx Providenza & Boekelheide, Inc.