From: mranger90 on

Hello,
I have a basic avstream architecture question. After piling through
the docs as well as the avshws and wd3ksproxy examples, I still have a
disconnect that I cannot resolve.
I am to write an avstream directshow driver for a video frame grabber.
This frame grabber already has a wdm style device driver which maps in
the registers, handles interrupts etc. A user level library does most
of the work with information gleaned from the driver via IOCTLS. It is
necessary for this to continue to work so that backward compatibility
with existing applications will not be broken.

What I don't know is how to handle the 2 drivers. Can they both exist
and manage the device resources ? Should I:
A. - implement the avstream as an upper level filter driver ? If so, an
example of how to do this in the INF file would be appreciated.
B. - Allow both drivers to exist and access them seperately ? if so,
again, how would this work in the INF file ?
C. - Ditch the system device driver and incorporate the IOCTLS into the
avstream driver and have the library access the avstream driver to
maintain compatibility.

Thank you in advance,


--
mranger90
http://www.techtalkz.com - Technology and Computer Troubleshooting Forums

From: Maxim S. Shatskih on
Forget AVStream, and write the user-mode DirectShow component which will
call IOCTLs to your existing WDM driver, exposing the upper edge of a
DirectShow video source.

--
Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
maxim(a)storagecraft.com
http://www.storagecraft.com

"mranger90" <guest(a)unknown-email.com> wrote in message
news:6a95860f4b3bd9719422fd96f7cb7ca5(a)nntp-gateway.com...
>
> Hello,
> I have a basic avstream architecture question. After piling through
> the docs as well as the avshws and wd3ksproxy examples, I still have a
> disconnect that I cannot resolve.
> I am to write an avstream directshow driver for a video frame grabber.
> This frame grabber already has a wdm style device driver which maps in
> the registers, handles interrupts etc. A user level library does most
> of the work with information gleaned from the driver via IOCTLS. It is
> necessary for this to continue to work so that backward compatibility
> with existing applications will not be broken.
>
> What I don't know is how to handle the 2 drivers. Can they both exist
> and manage the device resources ? Should I:
> A. - implement the avstream as an upper level filter driver ? If so, an
> example of how to do this in the INF file would be appreciated.
> B. - Allow both drivers to exist and access them seperately ? if so,
> again, how would this work in the INF file ?
> C. - Ditch the system device driver and incorporate the IOCTLS into the
> avstream driver and have the library access the avstream driver to
> maintain compatibility.
>
> Thank you in advance,
>
>
> --
> mranger90
> http://www.techtalkz.com - Technology and Computer Troubleshooting Forums
>

From: Geraint Davies on
On Sat, 23 Feb 2008 00:25:01 +0300, "Maxim S. Shatskih"
<maxim(a)storagecraft.com> wrote:

> Forget AVStream, and write the user-mode DirectShow component which will
>call IOCTLs to your existing WDM driver, exposing the upper edge of a
>DirectShow video source.

Yes but avstream is a requirement for whql for video capture isn't it?
So maybe better to layer the user mode library on top of the avstream
driver. I wouldn't attempt to have both drivers -- use the avstream
driver and implement backwards compatibility on it.

It's quite simple to add your private IOCTLs to the avstream driver.
What I think you will run into is accessing your avstream driver state
-- IIRC the device extension used by avstream is a private structure,
so in your ioctl handler, it's not simple to get from the device
object to your private avstream objects. I guess there are ways around
this, but I think I would be tempted to use something like IKsMethod
to add private functionality to the avstream filter instead.

G
From: Maxim S. Shatskih on
> Yes but avstream is a requirement for whql for video capture isn't it?

You do not need to WHQL anything except your original hardware driver.

> So maybe better to layer the user mode library on top of the avstream
> driver.

Probably.

--
Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
maxim(a)storagecraft.com
http://www.storagecraft.com