From: Attributesoft on
On 11 , 23:25, "Ivan Brugiolo [MSFT]"
<ivanb...(a)online.microsoft.com> wrote:
> memcpy(pDestinationBuffer,SURFOBJ::pvBits,SURFOBJ::cjBits);
>
> Honestly, you should try to understand what you are trying
> to do before shooting questions.
>
> --
> --
> This posting is provided "AS IS" with no warranties, and confers no rights.
> Use of any included script samples are subject to the terms specified athttp://www.microsoft.com/info/cpyright.htm
>
> <Attributes...(a)gmail.com> wrote in message
>
> news:1181584171.815000.308220(a)k79g2000hse.googlegroups.com...
>
> >I mean how I can copy Bitmap from surface?

Sorry if I say something wrong.
I have exact target, to make remote screen control with minimum
traffic.
I haven't found any full documentation about this type of drive in
Internet and I've been searching answer for along time.
Thank you very much for your answers.

(Can I speak Rus?)

From: Attributesoft on
> (Can I speak Rus?)
(Can you speak Rus?)*

From: Ivan Brugiolo [MSFT] on
In the DDI model, the implementation of the DrvXXX function is responsible
for rasterizing the pixel in a way meaningful for the operation.
So, it's your implementation that will do the actual drawing on the
(primary or device compatible) surface that was passed in.
The DDI interface is alway imperative an immediate.

Assuming you are choosing the Pull-Model, then your application
will pull whatever changes at whatever point in time is convenient.

--
--
This posting is provided "AS IS" with no warranties, and confers no rights.
Use of any included script samples are subject to the terms specified at
http://www.microsoft.com/info/cpyright.htm


<Attributesoft(a)gmail.com> wrote in message
news:1181594461.584119.77810(a)p77g2000hsh.googlegroups.com...
> On 11 , 19:47, "Ivan Brugiolo [MSFT]"
> <ivanb...(a)online.microsoft.com> wrote:
>> Not all the DrvXXX functions exposed by a display driver are `drawing`
>> functins,
>> but, most of them are. You can conceivably immagine that DrvLineTo is
>> expected to draw a line.
>>
>> --
>> --
>> This posting is provided "AS IS" with no warranties, and confers no
>> rights.
>> Use of any included script samples are subject to the terms specified
>> athttp://www.microsoft.com/info/cpyright.htm
>>
>> <Attributes...(a)gmail.com> wrote in message
>>
>> news:1181559237.792786.199230(a)h2g2000hsg.googlegroups.com...
>>
>> > Does Mirror Driver draws when each DrvXXX is calling or it does
>> > nothing with it?
>
> Yes I understand that, but I need to know when for example DrvLineTo
> occurs, before this function or after does it change surface or not?
> Sorry for not correct English.
> Thank you for your answer.
>


From: Ivan Brugiolo [MSFT] on
You are trying to do something that is fairly complex to do in an efficient
manner.
VNC, Remote Desktop, GoToMyPC, NetMeeting, etc, are all based
on the same `foundation` technology, but, they use a lot of experise and
optimizations
to get the cheap bandwidth requirements they have.

There is no documenation on the web for the end-to-end scenario,
because it's a pretty propretary information.
And, the DDK covers well the basics of all intermediate steps,
but not the end-to-end scenario (and it should not).

To answer your question: How do I get the surface out of the mirro driver ?
The cheap answer is:
Your `pull-application` calls into the display drive with a buffer
big enough to hold the whole primary, and, the display driver will memcpy
the entire surface to the supplied buffer.

--
--
This posting is provided "AS IS" with no warranties, and confers no rights.
Use of any included script samples are subject to the terms specified at
http://www.microsoft.com/info/cpyright.htm


<Attributesoft(a)gmail.com> wrote in message
news:1181595591.908192.113660(a)q66g2000hsg.googlegroups.com...
> On 11 , 23:25, "Ivan Brugiolo [MSFT]"
> <ivanb...(a)online.microsoft.com> wrote:
>> memcpy(pDestinationBuffer,SURFOBJ::pvBits,SURFOBJ::cjBits);
>>
>> Honestly, you should try to understand what you are trying
>> to do before shooting questions.
>>
>> --
>> --
>> This posting is provided "AS IS" with no warranties, and confers no
>> rights.
>> Use of any included script samples are subject to the terms specified
>> athttp://www.microsoft.com/info/cpyright.htm
>>
>> <Attributes...(a)gmail.com> wrote in message
>>
>> news:1181584171.815000.308220(a)k79g2000hse.googlegroups.com...
>>
>> >I mean how I can copy Bitmap from surface?
>
> Sorry if I say something wrong.
> I have exact target, to make remote screen control with minimum
> traffic.
> I haven't found any full documentation about this type of drive in
> Internet and I've been searching answer for along time.
> Thank you very much for your answers.
>
> (Can I speak Rus?)
>


From: Attributesoft on
:) .
I tried to do this code
memcpy(pDestinationBuffer,SURFOBJ::pvBits,SURFOBJ::cjBits);
and I did this
ULONG DrvEscape(
SURFOBJ *pso,
ULONG iEsc,
ULONG cjIn,
PVOID pvIn,
ULONG cjOut,
PVOID pvOut)
{

if (pvOut == NULL)
{
DISPDBG((0, "Experimental NULL param\n"));
return 0;
}
memcpy(pvOut,pso->pvBits,pso->cjBits);
DISPDBG((0, "Experimental %s: %p, %p, %p, %p, %p, %p\n",
__FUNCTION__, pso, iEsc, cjIn, pvIn, cjOut, pvOut));
return pso->cjBits;
}
And in user-mode app I wrote (delphi)
GetMem(surfObjPointer,10485760);
ExtEscape(hdc1,1,2,nil,3,surfObjPointer);
but when I execute ^ code, the screen of Display becomes blue and
system cruses.
Am I doing in right direction?