I want to develop a virtual webcam driver which from User mode I'll pass image to it and it will display as webcam output.

I don't want to use DirectX filter and CSourceStream etc. Because they don't work on some programs which doesn't use DirectX for capturing webcam image.

I have to write a kernel mode device driver so.

Any ideas? I tried testcap from DDK samples, but it doesn't process image from user mode and doesn't get any input, just it displays 7 colors in webcam...

Any help would be greatly appreciated. Thanks


Thank you all!

I tried code from here: http://tmhare.mvps.org/downloads.htm (find Capture Source Filter)

It worked well when I compiled it in Yahoo, MSN, but it crashed AIM, Internet Explorer Flash Webcam, Firefox Flash webcam and Skype... I got crash in QueryInterface after 8 time call to that, I found it with tracing it with a lot of tricks..

Now I know, it crashes on 8th call to HRESULT CVCamStream::QueryInterface(REFIID riid, void **ppv)

8th call when it reaches to last if, I mean: return CSourceStream::QueryInterface(riid, ppv);

It's in 17th line of Filters.cpp

Why do you think I'm getting crash??

Thank you all for guiding me to find correct solution which is DirectShow, not driver

Edit
Report