Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Video mirror driver in applications like VNC

4 views
Skip to first unread message

kidilan....@gmail.com

unread,
May 21, 2008, 1:36:07 AM5/21/08
to
Hello,

I have been assigned to develop an application like VNC, for desktop
sharing with multiple monitor support. Currenly we have a prototype
using the hook mechanism. Now I am assigned to redo it using the video
mirror driver.
As I am quite new to this topic, i need your help to complete the task
in the stipulated time.

So far, I was able to install the sample mirror driver in DDK. The
debug log indicates, functions like DrvCopyBits, DrvBitBlt etc were
invoked in the mirror .dll driver.

What I want to accomplish is
1- How to get the full screen data using the morror driver
2- Is there a way to get the screen update from the driver.
( in the prototype using Hook, we get the updated RECTs from hook
callback.
So we can capture data on that RECT by comparing two full screens)

As such, my intensin is to get the screen data ( full screen or
updates) and compress it and send to the remote machine over an
socket, whre the desktop is being viewed. Please let me know how i can
achieve this.

Also, suggest some book or info where I could get a clear idea of the
functionlity of this system.

I have posted this in another group also.. pls excuse me.

Thanks
Kidilan

Eugene Sukhodolin at dot

unread,
May 21, 2008, 11:27:57 PM5/21/08
to
> What I want to accomplish is
> 1- How to get the full screen data using the morror driver
> 2- Is there a way to get the screen update from the driver.
> ( in the prototype using Hook, we get the updated RECTs from hook
> callback.
> So we can capture data on that RECT by comparing two full screens)

It will be damn slow. It's not a good idea to compare two FULL screens
each time.

> As such, my intensin is to get the screen data ( full screen or
> updates) and compress it and send to the remote machine over an
> socket, whre the desktop is being viewed. Please let me know how i
> can
> achieve this.

> Also, suggest some book or info where I could get a clear idea of
> the
> functionlity of this system.

Did you review existing open-source projects like TightVNC
(http://www.tightvnc.org)? This will give you an idea how it works in
general.

--
Sincerely,
Eugene Sukhodolin
www.demoforge.com

Tim Roberts

unread,
May 22, 2008, 1:48:04 AM5/22/08
to
kidilan....@gmail.com wrote:
>
>I have been assigned to develop an application like VNC, for desktop
>sharing with multiple monitor support. Currenly we have a prototype
>using the hook mechanism. Now I am assigned to redo it using the video
>mirror driver.
>As I am quite new to this topic, i need your help to complete the task
>in the stipulated time.

You're the 3rd or 4th person to do this in the last few months. You need
to check the archives of this and the NTDEV list.

>So far, I was able to install the sample mirror driver in DDK. The
>debug log indicates, functions like DrvCopyBits, DrvBitBlt etc were
>invoked in the mirror .dll driver.
>
>What I want to accomplish is
>1- How to get the full screen data using the morror driver

The mirror driver maintains its own surface. It doesn't have access to the
main display driver.

>2- Is there a way to get the screen update from the driver.
> ( in the prototype using Hook, we get the updated RECTs from hook
>callback.
> So we can capture data on that RECT by comparing two full screens)

You own the mirror driver, and hence its surface, so you know when stuff
gets drawn.

>As such, my intensin is to get the screen data ( full screen or
>updates) and compress it and send to the remote machine over an
>socket, whre the desktop is being viewed. Please let me know how i can
>achieve this.

It's amazing to me that people expect to develop this kind of thing in a
few weeks, completely ignoring the fact that VNC and Remote Desktop are the
result of many years of development effort.

DemoForge has developed a fully functional mirror driver designed for
exactly this purpose, called DFMirage. It is, in fact, the mirror driver
used by TightVNC.

http://www.demoforge.com/dfmirage.htm
--
Tim Roberts, ti...@probo.com
Providenza & Boekelheide, Inc.

0 new messages