[wdmaudiodev] Re: newbie questions about filter drivers

  • From: "Mathieu Routhier" <mrouthier@xxxxxxxxxxxxx>
  • To: <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Mon, 18 Oct 2004 09:45:00 -0400

Dimitr,

If the other driver has been correctly designed, you should be able to
interchange them in the way you described.  In the end, it really is the
same: this will result in the same driver ordering in the device stack.

Even if that would work, I would recommend using the proper mechanism, i.e.
chaining your new driver to the existing FDO instead of the opposite.  You
would have to modify the original driver's INF, breaking that driver's
digital signature.  There are other consequences too, for example, other
filter drivers designed to chain above or below that FDO might not work
anymore.  my advice?  stick to the standards and make your driver a proper
filter driver.  It always pays off.

Mat

-----Original Message-----
From: wdmaudiodev-bounce@xxxxxxxxxxxxx
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of dprado@xxxxxxxxxxxxxx
Sent: Saturday, October 16, 2004 10:54 AM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] Re: newbie questions about filter drivers

Well, it is clear to me that this is a lot harder than I previously thought.
I
still have a "basic" question regarding the stacking of drivers. All the
information I have seen on WDM filter drivers, state that filter drivers sit
above or below a function driver and "transparently" filter IRPs . I
installed
a simple "passtrough" driver as an UpperFilter driver to the MSVAD virtual
audio device from the DDK and it worked as expected, logging the IRPs with
KdPrint. After that I modified the INF file in order to install the
passthrough
filter driver as a function driver, including registering wave interfaces
for
this driver. I manually configured the MSVAD virtual audio driver as a
LowerFilter of this Passthrough filter driver ( that was actually installed
as
a function driver ). This worked, but I am not sure if this is somthing that
I
shouldn´t have done. 
Generally, If I have a filter driver "XYZ" as an UpperFilter to a function
driver "ABC" , can I install "XYZ" as a function driver and have the "ABC"
driver as a lowerfilter to XYZ? Would it have the same effect?
This same setup did not work when using USBaudio as a LowerFilter to the
passthough driver The passthough driver refused to load.


Dimitr Prado


> >from what I understand a lower filter will not work, how can the lower
> filter
> >know which "virtual device" the user application used?
> >
> 
> Because above you, there will be two driver stacks: two copies of 
> usbaudio.sys, two copies of sysaudio.sys, two copies of wdmaud.sys, two 
> devices exposed to user mode.  I don't know whether it has to be a lower 
> filter to usbaudio.sys or an upper filter to usbd.sys, but I believe 
> that's the spot where you need to branch off your second device.  Each 
> request will come to you from a different FDO.  You'll merge them and 
> forward it on.
> 
> If this is just a hobby task for you, to avoid buying another set of 
> speakers, you should probably forget it.  You're probably talking about 
> five weeks of development and debugging work.


******************

WDMAUDIODEV addresses:
Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx
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.de/

******************

WDMAUDIODEV addresses:
Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx
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.de/

Other related posts: