[wdmaudiodev] Re: StartDevice Empty Resource List?

  • From: Tim Roberts <timr@xxxxxxxxx>
  • To: "wdmaudiodev@xxxxxxxxxxxxx" <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Wed, 5 Jun 2013 10:23:55 -0700

Revan Foly wrote:
> I chose those three interfaces after reading this MSDN article, which
> states that raw MIDI processing devices should not ue
> 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.

Other related posts: