[wdmaudiodev] Re: Which type of driver

  • From: "Philip Lukidis" <pagefault0x0@xxxxxxxxxxx>
  • To: <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Mon, 8 Mar 2004 08:28:56 -0500

Hi.  I have a 1394 audio device for which I use a portcls style miniport.
I'm thinking of porting to avstream in order that surprise removal be
properly supported.  Question: is there any way to properly and override the
dispatch table of the parent driver (specifically, for DeviceIoControl so my
control panel can talk to me). KSDEVICE_DISPATCH is available (but not
really suitable for me) in WinXP+ only, and at the very least I have to
support Win2k also (probably Win98SE and ME as well).  I did not see any
PcDispacthIrp equivalent, like there is in portcls drivers.

Any thoughts?

Philip Lukidis

PS: So far I always have had a bus driver architecture, i.e. bus driver
enumerates the audio driver, and the control panel talked to the bus driver.
But this may not always be the case for me.

----- Original Message ----- 
From: "Waldemar Haszlakiewicz" <waldemar.haszlakiewicz@xxxxxxxx>
To: "Matt Gonzalez" <wdmaudiodev@xxxxxxxxxxxxx>
Sent: Saturday, March 06, 2004 6:29 AM
Subject: [wdmaudiodev] Re: Which type of driver


> Then again AVStream has lots of stuff implemented already there is less
writing, but yes more
> thinking (read breaking your head).
> BUT when you figure it out everything looks very clean and simple.
>
> Anyway if you'll write AVStream driver you'll have to read older drivers
docs also (well not
> everything) as some things are just upgrades.
> In short: AVStream hides a lot of stuff from you, so you don't need to
bother with them.
>
> Waldemar
>
>
> MG> This is exactly what I've been doing.
>
> MG> If you want to talk to a 1394 device, you have to make your own
IRPsand send them to the
> MG> 1394 stack. You will find examples on how to dothis in the 1394
samples. Compuware's
> MG> DriverWorks also has usefulsample code for talking to 1394.
>
> MG> To expose your hardware as an audio device, you need to create a
kernelstreaming filter.
> MG> You can try using portclass miniports (like MSVAD)or AVStream. There's
also the older stream
> MG> class stuff, but you'd bebetter off with AVStream.
>
> MG> Portclass is an older model and doesn't handle surprise removal
aswell. AVStream is
> MG> cleaner, but there is no good example code forbuilding an audio
driver. Portclass is perhaps
> MG> quirkier, but muchbetter documented.
>
> MG> Both AVC.sys and 61883.sys weren't useful for our purposes.
AVC.sysdoesn't support audio
> MG> formats. 61883.sys didn't give me enoughcontrol over the streaming.
>
> MG> Matt
>
> MG> John D. Farmer wrote:
>
>
>
>
> MG>       Greetings,
>
> MG>
>
> MG>   I'm new to Audio driver developmentand still pretty new to driver
development in
> MG> general. I am working ona project that needs to stream audio data down
to the 1394 Bus,
> MG> viaAVC.sys and 61883.sys. The overall propose of my project is to
supportFirewire hardware that
> MG> will implement the IEC-61883-6 standard (whichMicrosoft says they were
going to support, but
> MG> which I have yet to seesupported). I am guessing I am in need of a
upper filter driver totake
> MG> care of the passing down audio data through the AV/C stack (inplace of
the avcaudio.sys which I
> MG> cannot find on my system but found inthe documentation as: Kernel-Mode
WDM Audio Components
> MG> subsection:AVCAudio Class System Driver) and another driver below
avc.sys to beable to package
> MG> the audio data up into the 61883-6 standard format onits way down to
the 1394 bus (since I do
> MG> not believe that 61883.sysdoes not yet support the 61883-6 standard).
>
> MG>
>
> MG>   I have been perusing thedocumentation and this list and there seems
to be alot of
> MG> confusion tome on which way would be best to do this. I started by
trying to useMSVAD (which I
> MG> believe is a Port Class driver), but then I noticed thatMSVAD does not
seem to handle IRPs or
> MG> anything else that would allow meto send data down to the 1394 bus. I
looked at the MSDN docs
> MG> and theysaid that Port Class drivers could not be used for this
purpose. I tooka look at
> MG> this list, and it seems a number of people have been able todo this by
implementing their own
> MG> IRPs and URBs (in the case of USB). I've taken note of this and
noticed that it seems to be
> MG> extremelydifficult to do, and probably not the best way to handle this
problem.
>
> MG>
>
> MG>   I then started to lookat the AVStream and Stream class drivers. The
AVStream overview
> MG> onMSDN that it is a: "multimediaclass driver that supports video-only
streaming and
> MG> integratedaudio/video streaming." So does this mean that I cannot use
AVStreamto stream
> MG> audio-only? My last option was the Stream class driver whichthe MSDN
docs seem to suggest that
> MG> these driver are almost if nottotally deprecated.
>
> MG>
>
> MG>   I also looked at AV/C Client driver(which I think is a Stream
Minidriver) as a option,
> MG> and it seemed to bealmost what I wanted, but the documentation says
that the avcstream.sysplays
> MG> a part in the AV/C stack, my big problem with this is: I can'tfind
avcstream.sys on my system
> MG> (I'm running Windows XP) see: IEC-61883Protocol Driver in a Client
Driver Stack in the MSDN
> MG> documentation. AmI correct in assuming that avcstream.sys handles the
AV/C Audio subunit?
>
> MG>
>
> MG>   So as you can probably tell, I am alittle lost and confused on this
subject. If there is
> MG> anyone out therewho could give this newbie a little guidance, I would
be in youreternal debt.
>
> MG>
>
> MG>   Thanks,
>
> MG>
>
> MG>   John Farmer
>
>
> MG> ******************WDMAUDIODEV addresses:Post message:
> MG> mailto:wdmaudiodev@xxxxxxxxxxxxxxxxxxxxxx:
> MG> mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribeUnsubscribe:
> MG> mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribeModerator:
> MG> mailto:wdmaudiodev-moderators@xxxxxxxxxxxxxxxx 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/
>
>
******************

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: