[wdmaudiodev] Re: audio driver questions

  • From: Tim Newsham <tim.newsham@xxxxxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx
  • Date: Wed, 26 Aug 2009 13:18:05 -1000

On Wed, Aug 26, 2009 at 12:10 PM, Tim Roberts <timr@xxxxxxxxx> wrote:
>
> Installation and uninstallation of drivers is a user-mode activity.


That is only part of the story.  Device creation and destruction *is* part
of the drivers domain.  Ie. you can write a driver that performs an
IoCreateDevice and IoDeleteDevice dynamically.  This is akin to what I am
asking about -- is it possible to unregister the  PortWaveCyclic and
associated miniport from my driver or is that not possible while using these
interfaces?

However, one way to do what you ask is to make your "other device" into
> a bus driver.  When it is ready to have audio services available, you
> call IoInvalidateDeviceRelations, which tells PnP to ask your driver
> about its child devices.  You report the PnP ID for your audio device.
> The system will load your audio device, and it will start to run.


ahh, thank you.  I'll look into this.


> This is exactly what the USB bus driver does when a device plugs and
> unplugs.  And, really, it's not that hard to do.


Would this be suitable for two devices that are cooperating with each other
(ie. in a master/slave relationship, akin to pseudo-ttys in unix)?  If so,
how would I establish a relationship between the master device (who would be
playing the bus driver, I guess) and the dynamically created slave device
that gets loaded when demanded by the master?


> Tim Roberts, timr@xxxxxxxxx
> Providenza & Boekelheide, Inc.


-TimN

Other related posts: