Re: intercepting GDI calls ...2

Thanks every one for your cooperation …
It seems that I have to go a long way before I can
successfully and effectively implement a mirror driver
BUT
As I said earlier my concern is to send the data to a
remote system possibly for desktop viewing… So how
will i be able to do that… Can I mirror a display
unit on a remote system… i.e., Mirror a driver that
is remote to the display driver being mirrored

— xxxxx@Mastereye.KIEV.UA wrote:

This is not quite correct. Mirror driver concept was
true in NT4 with SP3
and later.


Bye,
SaB

-----Original Message-----
From: xxxxx@iee.org [mailto:xxxxx@iee.org]
Sent: 15 ÷åðâíÿ 2001 ð. 18:25
To: NT Developers Interest List
Subject: [ntdev] Re: intercepting GDI calls

Girish Desai:
> Mirror driver concept is true only for Windows
2000 and not for windows
> NT. The only way you have to intercpt the calls
going from GDI to
> display driver. And since display drivers are
different from actual
> kernel mode driver, you can not attach to real
kernel mode driver…
> needs more efforts…

Agreed. On NT4 to capture GDI (DDI) you’d have to
somehow patch the target
display driver’s DRVFN table before its
DrvDriverEntry got called.

I doubt if this is recommended.

Gordon


You are currently subscribed to ntdev as:
xxxxx@mastereye.kiev.ua
To unsubscribe send a blank email to
leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as:
xxxxx@yahoo.com
To unsubscribe send a blank email to
leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


Do You Yahoo!?
Spot the hottest trends in music, movies, and more.
http://buzz.yahoo.com/


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

Option 1 is mirror driver. It was supported from NT4 but was only documented
in 2000. (2000ddk contains a sample mirror driver).
Netmeeting uses mirror driver (from NT4 onwards).
As far as I know mirror driver isn’t much different from a normal
display driver.

Option 2 You can write a dummy display driver. In this driver you can call
the load the original display driver.
you will have to write stubs for all the DrvFn that you want
to support. For these stubs you can call the original dislay driver. (Lotus
ScreenCam used this technique earlier, I don’t know what they do presently).

Warm Regards
Jeseem
mailto:xxxxx@hotmail.com
alternate mail id : xxxxx@nestec.net

----- Original Message -----
From: “irfan bashir”
To: “NT Developers Interest List”
Sent: Monday, June 18, 2001 12:10 PM
Subject: [ntdev] Re: intercepting GDI calls …2

> Thanks every one for your cooperation …
> It seems that I have to go a long way before I can
> successfully and effectively implement a mirror driver
> BUT
> As I said earlier my concern is to send the data to a
> remote system possibly for desktop viewing… So how
> will i be able to do that… Can I mirror a display
> unit on a remote system… i.e., Mirror a driver that
> is remote to the display driver being mirrored
>
>
> — xxxxx@Mastereye.KIEV.UA wrote:
> > This is not quite correct. Mirror driver concept was
> > true in NT4 with SP3
> > and later.
> >
> > ------
> > Bye,
> > SaB
> >
> >
> > -----Original Message-----
> > From: xxxxx@iee.org [mailto:xxxxx@iee.org]
> > Sent: 15 ÷åðâíÿ 2001 ð. 18:25
> > To: NT Developers Interest List
> > Subject: [ntdev] Re: intercepting GDI calls
> >
> >
> > Girish Desai:
> > > Mirror driver concept is true only for Windows
> > 2000 and not for windows
> > > NT. The only way you have to intercpt the calls
> > going from GDI to
> > > display driver. And since display drivers are
> > different from actual
> > > kernel mode driver, you can not attach to real
> > kernel mode driver…
> > > needs more efforts…
> >
> > Agreed. On NT4 to capture GDI (DDI) you’d have to
> > somehow patch the target
> > display driver’s DRVFN table before its
> > DrvDriverEntry got called.
> >
> > I doubt if this is recommended.
> >
> > Gordon
> >
> > —
> > You are currently subscribed to ntdev as:
> > xxxxx@mastereye.kiev.ua
> > To unsubscribe send a blank email to
> > leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
> >
> >
> > —
> > You are currently subscribed to ntdev as:
> > xxxxx@yahoo.com
> > To unsubscribe send a blank email to
> > leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
> >
>
>
> __________________________________________________
> Do You Yahoo!?
> Spot the hottest trends in music, movies, and more.
> http://buzz.yahoo.com/
>
> —
> You are currently subscribed to ntdev as: xxxxx@hotmail.com
> To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
>


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

OK … Thanks but which one is faster… I only require
afficientcy…
Actually I have already developed a remote desktop
viewer. using sockets and a litlle compression utility
for transportation of data… I am making simple API
calls to get the desktop area and some blitting etc…
It is quite efficient but when it comes to video
rendering…AAH… So I need a mechanism
which is faster

— Jeseem S wrote:
> Option 1 is mirror driver. It was supported from NT4
> but was only documented
> in 2000. (2000ddk contains a sample mirror driver).
> Netmeeting uses mirror driver (from NT4
> onwards).
> As far as I know mirror driver isn’t much
> different from a normal
> display driver.
>
> Option 2 You can write a dummy display driver. In
> this driver you can call
> the load the original display driver.
> you will have to write stubs for all
> the DrvFn that you want
> to support. For these stubs you can call the
> original dislay driver. (Lotus
> ScreenCam used this technique earlier, I don’t know
> what they do presently).
>
>
> Warm Regards
> Jeseem
> mailto:xxxxx@hotmail.com
> alternate mail id : xxxxx@nestec.net
>
>
>
> ----- Original Message -----
> From: “irfan bashir”
> To: “NT Developers Interest List”
>
> Sent: Monday, June 18, 2001 12:10 PM
> Subject: [ntdev] Re: intercepting GDI calls …2
>
>
> > Thanks every one for your cooperation …
> > It seems that I have to go a long way before I
> can
> > successfully and effectively implement a mirror
> driver
> > BUT
> > As I said earlier my concern is to send the data
> to a
> > remote system possibly for desktop viewing… So
> how
> > will i be able to do that… Can I mirror a
> display
> > unit on a remote system… i.e., Mirror a driver
> that
> > is remote to the display driver being mirrored
> >
> >
> > — xxxxx@Mastereye.KIEV.UA wrote:
> > > This is not quite correct. Mirror driver concept
> was
> > > true in NT4 with SP3
> > > and later.
> > >
> > > ------
> > > Bye,
> > > SaB
> > >
> > >
> > > -----Original Message-----
> > > From: xxxxx@iee.org [mailto:xxxxx@iee.org]
> > > Sent: 15 ÷åðâíÿ 2001 ð. 18:25
> > > To: NT Developers Interest List
> > > Subject: [ntdev] Re: intercepting GDI calls
> > >
> > >
> > > Girish Desai:
> > > > Mirror driver concept is true only for Windows
> > > 2000 and not for windows
> > > > NT. The only way you have to intercpt the
> calls
> > > going from GDI to
> > > > display driver. And since display drivers are
> > > different from actual
> > > > kernel mode driver, you can not attach to
> real
> > > kernel mode driver…
> > > > needs more efforts…
> > >
> > > Agreed. On NT4 to capture GDI (DDI) you’d have
> to
> > > somehow patch the target
> > > display driver’s DRVFN table before its
> > > DrvDriverEntry got called.
> > >
> > > I doubt if this is recommended.
> > >
> > > Gordon
> > >
> > > —
> > > You are currently subscribed to ntdev as:
> > > xxxxx@mastereye.kiev.ua
> > > To unsubscribe send a blank email to
> > > leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
> > >
> > >
> > > —
> > > You are currently subscribed to ntdev as:
> > > xxxxx@yahoo.com
> > > To unsubscribe send a blank email to
> > > leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
> > >
> >
> >
> >
> > Do You Yahoo!?
> > Spot the hottest trends in music, movies, and
> more.
> > http://buzz.yahoo.com/
> >
> > —
> > You are currently subscribed to ntdev as:
> xxxxx@hotmail.com
> > To unsubscribe send a blank email to
> leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
> >
>
> —
> You are currently subscribed to ntdev as:
> xxxxx@yahoo.com
> To unsubscribe send a blank email to
leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


Do You Yahoo!?
Spot the hottest trends in music, movies, and more.
http://buzz.yahoo.com/


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

I would suggest that you use a mirror driver, with it suporting only the
minimum functionality. (the graphics engine will do the rest )
Also if possible it should supoprt the lowest screen resolution. (I don’t
know if the mirror driver should support the same resolution as the original
display driver).

Use a chunk of memory as video memory for the mirror.
using a timer, send a screenshot from this memory across the network. (for
sending you can use tdi ).

the issues with option 2 is that some display cards may support a lot of
functionality. To support such display cards, you will have to simulate all
the functionality, plus you will have to look at pallete management and such
stuff.
It gets pretty compilcated and before you know it, your implementation will
crash on some display card or the other.
However if you are developing for specific display card, option 2 is
better.

Hope this helps.
Warm Regards
Jeseem
mailto:xxxxx@hotmail.com

----- Original Message -----
From: “irfan bashir”
To: “NT Developers Interest List”
Sent: Tuesday, June 19, 2001 11:58 AM
Subject: [ntdev] Re: intercepting GDI calls …2

> OK … Thanks but which one is faster… I only require
> afficientcy…
> Actually I have already developed a remote desktop
> viewer. using sockets and a litlle compression utility
> for transportation of data… I am making simple API
> calls to get the desktop area and some blitting etc…
> It is quite efficient but when it comes to video
> rendering…AAH… So I need a mechanism
> which is faster
>
> — Jeseem S wrote:
> > Option 1 is mirror driver. It was supported from NT4
> > but was only documented
> > in 2000. (2000ddk contains a sample mirror driver).
> > Netmeeting uses mirror driver (from NT4
> > onwards).
> > As far as I know mirror driver isn’t much
> > different from a normal
> > display driver.
> >
> > Option 2 You can write a dummy display driver. In
> > this driver you can call
> > the load the original display driver.
> > you will have to write stubs for all
> > the DrvFn that you want
> > to support. For these stubs you can call the
> > original dislay driver. (Lotus
> > ScreenCam used this technique earlier, I don’t know
> > what they do presently).
> >
> >
> > Warm Regards
> > Jeseem
> > mailto:xxxxx@hotmail.com
> > alternate mail id : xxxxx@nestec.net
> >
> >
> >
> > ----- Original Message -----
> > From: “irfan bashir”
> > To: “NT Developers Interest List”
> >
> > Sent: Monday, June 18, 2001 12:10 PM
> > Subject: [ntdev] Re: intercepting GDI calls …2
> >
> >
> > > Thanks every one for your cooperation …
> > > It seems that I have to go a long way before I
> > can
> > > successfully and effectively implement a mirror
> > driver
> > > BUT
> > > As I said earlier my concern is to send the data
> > to a
> > > remote system possibly for desktop viewing… So
> > how
> > > will i be able to do that… Can I mirror a
> > display
> > > unit on a remote system… i.e., Mirror a driver
> > that
> > > is remote to the display driver being mirrored
> > >
> > >
> > > — xxxxx@Mastereye.KIEV.UA wrote:
> > > > This is not quite correct. Mirror driver concept
> > was
> > > > true in NT4 with SP3
> > > > and later.
> > > >
> > > > ------
> > > > Bye,
> > > > SaB
> > > >
> > > >
> > > > -----Original Message-----
> > > > From: xxxxx@iee.org [mailto:xxxxx@iee.org]
> > > > Sent: 15 ÷åðâíÿ 2001 ð. 18:25
> > > > To: NT Developers Interest List
> > > > Subject: [ntdev] Re: intercepting GDI calls
> > > >
> > > >
> > > > Girish Desai:
> > > > > Mirror driver concept is true only for Windows
> > > > 2000 and not for windows
> > > > > NT. The only way you have to intercpt the
> > calls
> > > > going from GDI to
> > > > > display driver. And since display drivers are
> > > > different from actual
> > > > > kernel mode driver, you can not attach to
> > real
> > > > kernel mode driver…
> > > > > needs more efforts…
> > > >
> > > > Agreed. On NT4 to capture GDI (DDI) you’d have
> > to
> > > > somehow patch the target
> > > > display driver’s DRVFN table before its
> > > > DrvDriverEntry got called.
> > > >
> > > > I doubt if this is recommended.
> > > >
> > > > Gordon
> > > >
> > > > —
> > > > You are currently subscribed to ntdev as:
> > > > xxxxx@mastereye.kiev.ua
> > > > To unsubscribe send a blank email to
> > > > leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
> > > >
> > > >
> > > > —
> > > > You are currently subscribed to ntdev as:
> > > > xxxxx@yahoo.com
> > > > To unsubscribe send a blank email to
> > > > leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
> > > >
> > >
> > >
> > >
> > > Do You Yahoo!?
> > > Spot the hottest trends in music, movies, and
> > more.
> > > http://buzz.yahoo.com/
> > >
> > > —
> > > You are currently subscribed to ntdev as:
> > xxxxx@hotmail.com
> > > To unsubscribe send a blank email to
> > leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
> > >
> >
> > —
> > You are currently subscribed to ntdev as:
> > xxxxx@yahoo.com
> > To unsubscribe send a blank email to
> leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
>
>
>

> Do You Yahoo!?
> Spot the hottest trends in music, movies, and more.
> http://buzz.yahoo.com/
>
> —
> You are currently subscribed to ntdev as: xxxxx@hotmail.com
> To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
>


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com