Hello,
I have written a mirror driver which is working fine for Vista and Win7
but on Xp it is constantly missing some updates. It is happening when I
click on restoring window /some times on close window, window remains
visible in background. It is happening only with single window. For multiple
window I am getting complete updates.
I am following the basic mirror driver concepts like, hooking all events and
putting them into a shared memory which is shared between kernel driver and
user level app.
Any pointer or suggestions will be highly appreciable.
/sarbojit
Sarbojit Sarkar wrote:
I have written a mirror driver which is working fine for Vista and
Win7 but on Xp it is constantly missing some updates. It is happening
when I click on restoring window /some times on close window, window
remains visible in background. It is happening only with single
window. For multiple window I am getting complete updates.
I am following the basic mirror driver concepts like, hooking all
events and putting them into a shared memory which is shared between
kernel driver and user level app.
The implication is that you have missed some of the events. Are you
handling DrvSaveScreenBits?
–
Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.
Because of security reasons OSR is not allowing me to attach the image :(.
Please let me know if you need to see how exactly missing updates are look.
I will send you through direct mail.
Thanks & regards
/sarbojit
On Fri, Nov 12, 2010 at 1:55 AM, Sarbojit Sarkar wrote:
> >The implication is that you have missed some of the events. Are you
> >handling DrvSaveScreenBits?
>
> Thanks Tim for response.
> No, in my current code I am not handling DrvSaveScreenBits and forcefully
> failing calls by returning 0.
>
> I am confused about the functionality of DrvScreenBits. When exactly
> OS will call this function to save / restore or Free?
>
> I am getting calls to save the screen data with the surface object that is
> created by my driver only. So whats the reason behind this call? If OS wants
> me to save the screen then why OS is sending the surface that my drivre
> has created. Do I need to maintain some extra buffer/surface in driver to
> make a copy of the sufrace.
>
> I have hooked following functions. Please let me know if I need to hook
> some more functions or some functions I need to remove.
> HOOK_STRETCHBLT
> HOOK_ALPHABLEND
> HOOK_BITBLT
> HOOK_COPYBITS
> HOOK_FILLPATH
> HOOK_GRADIENTFILL
> HOOK_LINETO
> HOOK_STROKEPATH
> HOOK_TRANSPARENTBLT
> HOOK_TEXTOUT
>
> I have attached the screen shotof missing updates.
>
> Any pointer or suggestion will help a lot.
>
> /sarbojit
> On Thu, Nov 11, 2010 at 11:23 PM, Tim Roberts wrote:
>
>> Sarbojit Sarkar wrote:
>> >
>> > I have written a mirror driver which is working fine for Vista and
>> > Win7 but on Xp it is constantly missing some updates. It is happening
>> > when I click on restoring window /some times on close window, window
>> > remains visible in background. It is happening only with single
>> > window. For multiple window I am getting complete updates.
>> >
>> > I am following the basic mirror driver concepts like, hooking all
>> > events and putting them into a shared memory which is shared between
>> > kernel driver and user level app.
>>
>> The implication is that you have missed some of the events. Are you
>> handling DrvSaveScreenBits?
>>
>> –
>> Tim Roberts, xxxxx@probo.com
>> Providenza & Boekelheide, Inc.
>>
>>
>> —
>> NTDEV is sponsored by OSR
>>
>> For our schedule of WDF, WDM, debugging and other seminars visit:
>> http://www.osr.com/seminars
>>
>> To unsubscribe, visit the List Server section of OSR Online at
>> http://www.osronline.com/page.cfm?name=ListServer
>>
>
>
Hi Tim,
I have refered some internet links and most of them are saying
DrvSvaeScreenBits() is used in case of menu… but I am getting this in
case of window restore/minimize/close. Will this come into picture for all
these cases?
Asking this because I am not seeing that much calls.
On Fri, Nov 12, 2010 at 1:59 AM, Sarbojit Sarkar wrote:
> Because of security reasons OSR is not allowing me to attach the image :(.
> Please let me know if you need to see how exactly missing updates are look.
> I will send you through direct mail.
>
> Thanks & regards
> /sarbojit
>
> On Fri, Nov 12, 2010 at 1:55 AM, Sarbojit Sarkar wrote:
>
>> >The implication is that you have missed some of the events. Are you
>> >handling DrvSaveScreenBits?
>>
>> Thanks Tim for response.
>> No, in my current code I am not handling DrvSaveScreenBits and forcefully
>> failing calls by returning 0.
>>
>> I am confused about the functionality of DrvScreenBits. When exactly
>> OS will call this function to save / restore or Free?
>>
>> I am getting calls to save the screen data with the surface object that is
>> created by my driver only. So whats the reason behind this call? If OS wants
>> me to save the screen then why OS is sending the surface that my drivre
>> has created. Do I need to maintain some extra buffer/surface in driver to
>> make a copy of the sufrace.
>>
>> I have hooked following functions. Please let me know if I need to hook
>> some more functions or some functions I need to remove.
>> HOOK_STRETCHBLT
>> HOOK_ALPHABLEND
>> HOOK_BITBLT
>> HOOK_COPYBITS
>> HOOK_FILLPATH
>> HOOK_GRADIENTFILL
>> HOOK_LINETO
>> HOOK_STROKEPATH
>> HOOK_TRANSPARENTBLT
>> HOOK_TEXTOUT
>>
>> I have attached the screen shotof missing updates.
>>
>> Any pointer or suggestion will help a lot.
>>
>> /sarbojit
>> On Thu, Nov 11, 2010 at 11:23 PM, Tim Roberts wrote:
>>
>>> Sarbojit Sarkar wrote:
>>> >
>>> > I have written a mirror driver which is working fine for Vista and
>>> > Win7 but on Xp it is constantly missing some updates. It is happening
>>> > when I click on restoring window /some times on close window, window
>>> > remains visible in background. It is happening only with single
>>> > window. For multiple window I am getting complete updates.
>>> >
>>> > I am following the basic mirror driver concepts like, hooking all
>>> > events and putting them into a shared memory which is shared between
>>> > kernel driver and user level app.
>>>
>>> The implication is that you have missed some of the events. Are you
>>> handling DrvSaveScreenBits?
>>>
>>> –
>>> Tim Roberts, xxxxx@probo.com
>>> Providenza & Boekelheide, Inc.
>>>
>>>
>>> —
>>> NTDEV is sponsored by OSR
>>>
>>> For our schedule of WDF, WDM, debugging and other seminars visit:
>>> http://www.osr.com/seminars
>>>
>>> To unsubscribe, visit the List Server section of OSR Online at
>>> http://www.osronline.com/page.cfm?name=ListServer
>>>
>>
>>
>
Tim,
Sorry for constant updates,
One more thing I have observed. If I move window diagonally upward then one
thinner line of left side of window and thinner line of bottom is getting
missed and similarly if I move it to diagonally down thinner lines from top
and right are getting missed, 
I recominf this on Win7 and DID not see this issue.
One more doubt,
I have hooked HOOK_STRETCHBLT/HOOK_ALPHABLEND
/HOOK_BITBLT/HOOK_COPYBITS/HOOK_FILLPATH /HOOK_GRADIENTFILL/HOOK_LINETO
/HOOK_STROKEPATH/HOOK_TRANSPARENTBLT /HOOK_TEXTOUT
but on XP I can see only copybits/textout mostly. I did lot of operations
but I did not see any other calls so I am not sure if I am missing
some events. Which needs to be hook for XP at least.
MOSTLY ISSUE IS COMING ONLY IS CASE OF SINGLE WINDOW MAXIMIZE/
MINIMIZE/RESTORE.
I am clueless… Please help.
On Fri, Nov 12, 2010 at 3:31 AM, Sarbojit Sarkar wrote:
> Hi Tim,
>
> I have refered some internet links and most of them are saying
> DrvSvaeScreenBits() is used in case of menu… but I am getting this in
> case of window restore/minimize/close. Will this come into picture for all
> these cases?
> Asking this because I am not seeing that much calls.
>
> On Fri, Nov 12, 2010 at 1:59 AM, Sarbojit Sarkar wrote:
>
>> Because of security reasons OSR is not allowing me to attach the image :(.
>> Please let me know if you need to see how exactly missing updates are look.
>> I will send you through direct mail.
>>
>> Thanks & regards
>> /sarbojit
>>
>> On Fri, Nov 12, 2010 at 1:55 AM, Sarbojit Sarkar >> > wrote:
>>
>>> >The implication is that you have missed some of the events. Are you
>>> >handling DrvSaveScreenBits?
>>>
>>> Thanks Tim for response.
>>> No, in my current code I am not handling DrvSaveScreenBits and forcefully
>>> failing calls by returning 0.
>>>
>>> I am confused about the functionality of DrvScreenBits. When exactly
>>> OS will call this function to save / restore or Free?
>>>
>>> I am getting calls to save the screen data with the surface object that
>>> is created by my driver only. So whats the reason behind this call? If OS
>>> wants me to save the screen then why OS is sending the surface that my
>>> drivre has created. Do I need to maintain some extra buffer/surface in
>>> driver to make a copy of the sufrace.
>>>
>>> I have hooked following functions. Please let me know if I need to hook
>>> some more functions or some functions I need to remove.
>>> HOOK_STRETCHBLT
>>> HOOK_ALPHABLEND
>>> HOOK_BITBLT
>>> HOOK_COPYBITS
>>> HOOK_FILLPATH
>>> HOOK_GRADIENTFILL
>>> HOOK_LINETO
>>> HOOK_STROKEPATH
>>> HOOK_TRANSPARENTBLT
>>> HOOK_TEXTOUT
>>>
>>> I have attached the screen shotof missing updates.
>>>
>>> Any pointer or suggestion will help a lot.
>>>
>>> /sarbojit
>>> On Thu, Nov 11, 2010 at 11:23 PM, Tim Roberts wrote:
>>>
>>>> Sarbojit Sarkar wrote:
>>>> >
>>>> > I have written a mirror driver which is working fine for Vista and
>>>> > Win7 but on Xp it is constantly missing some updates. It is happening
>>>> > when I click on restoring window /some times on close window, window
>>>> > remains visible in background. It is happening only with single
>>>> > window. For multiple window I am getting complete updates.
>>>> >
>>>> > I am following the basic mirror driver concepts like, hooking all
>>>> > events and putting them into a shared memory which is shared between
>>>> > kernel driver and user level app.
>>>>
>>>> The implication is that you have missed some of the events. Are you
>>>> handling DrvSaveScreenBits?
>>>>
>>>> –
>>>> Tim Roberts, xxxxx@probo.com
>>>> Providenza & Boekelheide, Inc.
>>>>
>>>>
>>>> —
>>>> NTDEV is sponsored by OSR
>>>>
>>>> For our schedule of WDF, WDM, debugging and other seminars visit:
>>>> http://www.osr.com/seminars
>>>>
>>>> To unsubscribe, visit the List Server section of OSR Online at
>>>> http://www.osronline.com/page.cfm?name=ListServer
>>>>
>>>
>>>
>>
>
Sarbojit Sarkar wrote:
One more thing I have observed. If I move window diagonally upward
then one thinner line of left side of window and thinner line of
bottom is getting missed and similarly if I move it to diagonally down
thinner lines from top and right are getting missed, 
I recominf this on Win7 and DID not see this issue.
This will be done as a CopyBits operation (to move the window) followed
by an operation to fill in the desktop in the regions that are no longer
covered by the window. The fill operation will either be a BitBlt
pattern fill (if you have a solid background) or a CopyBits from a
bitmap (if you have an image background).
One more doubt,
I have hooked HOOK_STRETCHBLT/HOOK_ALPHABLEND
/HOOK_BITBLT/HOOK_COPYBITS/HOOK_FILLPATH
/HOOK_GRADIENTFILL/HOOK_LINETO /HOOK_STROKEPATH/HOOK_TRANSPARENTBLT
/HOOK_TEXTOUT
but on XP I can see only copybits/textout mostly. I did lot of
operations but I did not see any other calls so I am not sure if I am
missing some events. Which needs to be hook for XP at least.
BitBlt, CopyBits, and TextOut are by far the most common operations. If
you’re running a drawing application, like mspaint or Illustrator, you
might start to see StrokePath and FillPath calls. Do you have a
driver-managed surface or a GDI-managed surface?
MOSTLY ISSUE IS COMING ONLY IS CASE OF SINGLE WINDOW MAXIMIZE/
MINIMIZE/RESTORE.
You’re missing an operation somewhere. You will to debug this. Put in
debug tracing to see which pixels are being affected by which
operations. From that, you ought to be able to figure out which regions
of the screen are missing.
–
Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.
Thanks Tim for your reply.
Observation:
If I hide desktop icons by un-selecting “Show Desktop Icons” option [desktop
right click ->Arrange Icons By ->Show Desktop Icons] Then I am not seeing
any missing updates. It is happening only if I am having desktop icons. This
observation is with/without drvSaveScreenBits().
I have kept printscreen for each operations (minimize/maximize/restore/close
in below link. Please take a look.
http://picasaweb.google.com/sarkar.iitr/DropBox?authkey=Gv1sRgCK7ytIaZiKuZuQE&pli=1&gsessionid=IAcxq6qffLxizznv4jBnCw#5539722869801166418
As I already mentioned issue is only happening with XP-32/64 not in
Vista/Win7. I have found my driver is calling drvsavescreenbits() on XP but
not on win7. So I have implemented it but even after implementation behavior
is same. Infact worst than previous.
Impelementation of drvsavescreenbits():
I am keeping local buffer in the driver when iMode == SS_SAVE and restore it
back when it is SS_RESTORE.
With DrvSaveScreenBits() implementation when I am minimizing window some
sequential rectangles are getting appered and which are not at all
disapearing. Please see in my attached images.
Please let me know if I have missed something here.
I am clueless… so please help me…
Any pointer or link will help a lot.
Thanks in avance
/sarbojit
On Fri, Nov 12, 2010 at 9:46 AM, Tim Roberts wrote:
> Sarbojit Sarkar wrote:
> >
> > One more thing I have observed. If I move window diagonally upward
> > then one thinner line of left side of window and thinner line of
> > bottom is getting missed and similarly if I move it to diagonally down
> > thinner lines from top and right are getting missed, 
> > I recominf this on Win7 and DID not see this issue.
>
> This will be done as a CopyBits operation (to move the window) followed
> by an operation to fill in the desktop in the regions that are no longer
> covered by the window. The fill operation will either be a BitBlt
> pattern fill (if you have a solid background) or a CopyBits from a
> bitmap (if you have an image background).
>
> > One more doubt,
> > I have hooked HOOK_STRETCHBLT/HOOK_ALPHABLEND
> > /HOOK_BITBLT/HOOK_COPYBITS/HOOK_FILLPATH
> > /HOOK_GRADIENTFILL/HOOK_LINETO /HOOK_STROKEPATH/HOOK_TRANSPARENTBLT
> > /HOOK_TEXTOUT
> > but on XP I can see only copybits/textout mostly. I did lot of
> > operations but I did not see any other calls so I am not sure if I am
> > missing some events. Which needs to be hook for XP at least.
>
> BitBlt, CopyBits, and TextOut are by far the most common operations. If
> you’re running a drawing application, like mspaint or Illustrator, you
> might start to see StrokePath and FillPath calls. Do you have a
> driver-managed surface or a GDI-managed surface?
>
> > MOSTLY ISSUE IS COMING ONLY IS CASE OF SINGLE WINDOW MAXIMIZE/
> > MINIMIZE/RESTORE.
>
> You’re missing an operation somewhere. You will to debug this. Put in
> debug tracing to see which pixels are being affected by which
> operations. From that, you ought to be able to figure out which regions
> of the screen are missing.
>
> –
> Tim Roberts, xxxxx@probo.com
> Providenza & Boekelheide, Inc.
>
>
> —
> NTDEV is sponsored by OSR
>
> For our schedule of WDF, WDM, debugging and other seminars visit:
> http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
>
I have kept saveScreenBuffer size as 10 but some times it is exceeding that
value It means driver is not getting restore calls for at least 10
consecutive SS_SAVE. Is it because of some implementation error or expected?
If it is expected then what whould be the correct way to handle it? Shall I
clear the complete buffer once buffer is filledup as those will be stale
data?
/sarbojit
On Mon, Nov 15, 2010 at 3:22 AM, Sarbojit Sarkar wrote:
> Thanks Tim for your reply.
>
> Observation:
> If I hide desktop icons by un-selecting “Show Desktop Icons” option
> [desktop right click ->Arrange Icons By ->Show Desktop Icons] Then I am not
> seeing any missing updates. It is happening only if I am having desktop
> icons. This observation is with/without drvSaveScreenBits().
>
> I have kept printscreen for each operations
> (minimize/maximize/restore/close in below link. Please take a look.
>
> http://picasaweb.google.com/sarkar.iitr/DropBox?authkey=Gv1sRgCK7ytIaZiKuZuQE&pli=1&gsessionid=IAcxq6qffLxizznv4jBnCw#5539722869801166418
>
> As I already mentioned issue is only happening with XP-32/64 not in
> Vista/Win7. I have found my driver is calling drvsavescreenbits() on XP but
> not on win7. So I have implemented it but even after implementation behavior
> is same. Infact worst than previous.
>
> Impelementation of drvsavescreenbits():
> I am keeping local buffer in the driver when iMode == SS_SAVE and restore
> it back when it is SS_RESTORE.
>
> With DrvSaveScreenBits() implementation when I am minimizing window some
> sequential rectangles are getting appered and which are not at all
> disapearing. Please see in my attached images.
>
> Please let me know if I have missed something here.
> I am clueless… so please help me…
> Any pointer or link will help a lot.
>
> Thanks in avance
> /sarbojit
>
> On Fri, Nov 12, 2010 at 9:46 AM, Tim Roberts wrote:
>
>> Sarbojit Sarkar wrote:
>> >
>> > One more thing I have observed. If I move window diagonally upward
>> > then one thinner line of left side of window and thinner line of
>> > bottom is getting missed and similarly if I move it to diagonally down
>> > thinner lines from top and right are getting missed, 
>> > I recominf this on Win7 and DID not see this issue.
>>
>> This will be done as a CopyBits operation (to move the window) followed
>> by an operation to fill in the desktop in the regions that are no longer
>> covered by the window. The fill operation will either be a BitBlt
>> pattern fill (if you have a solid background) or a CopyBits from a
>> bitmap (if you have an image background).
>>
>> > One more doubt,
>> > I have hooked HOOK_STRETCHBLT/HOOK_ALPHABLEND
>> > /HOOK_BITBLT/HOOK_COPYBITS/HOOK_FILLPATH
>> > /HOOK_GRADIENTFILL/HOOK_LINETO /HOOK_STROKEPATH/HOOK_TRANSPARENTBLT
>> > /HOOK_TEXTOUT
>> > but on XP I can see only copybits/textout mostly. I did lot of
>> > operations but I did not see any other calls so I am not sure if I am
>> > missing some events. Which needs to be hook for XP at least.
>>
>> BitBlt, CopyBits, and TextOut are by far the most common operations. If
>> you’re running a drawing application, like mspaint or Illustrator, you
>> might start to see StrokePath and FillPath calls. Do you have a
>> driver-managed surface or a GDI-managed surface?
>>
>> > MOSTLY ISSUE IS COMING ONLY IS CASE OF SINGLE WINDOW MAXIMIZE/
>> > MINIMIZE/RESTORE.
>>
>> You’re missing an operation somewhere. You will to debug this. Put in
>> debug tracing to see which pixels are being affected by which
>> operations. From that, you ought to be able to figure out which regions
>> of the screen are missing.
>>
>> –
>> Tim Roberts, xxxxx@probo.com
>> Providenza & Boekelheide, Inc.
>>
>>
>> —
>> NTDEV is sponsored by OSR
>>
>> For our schedule of WDF, WDM, debugging and other seminars visit:
>> http://www.osr.com/seminars
>>
>> To unsubscribe, visit the List Server section of OSR Online at
>> http://www.osronline.com/page.cfm?name=ListServer
>>
>
>
One more observation:
I have observed that on clicking close button in window, driver is not
getting SS_RESTORE call and because of that window is not getting
disappeared.
On Mon, Nov 15, 2010 at 4:15 AM, Sarbojit Sarkar wrote:
> I have kept saveScreenBuffer size as 10 but some times it is exceeding that
> value It means driver is not getting restore calls for at least 10
> consecutive SS_SAVE. Is it because of some implementation error or expected?
>
> If it is expected then what whould be the correct way to handle it? Shall I
> clear the complete buffer once buffer is filledup as those will be stale
> data?
>
> /sarbojit
>
> On Mon, Nov 15, 2010 at 3:22 AM, Sarbojit Sarkar wrote:
>
>> Thanks Tim for your reply.
>>
>> Observation:
>> If I hide desktop icons by un-selecting “Show Desktop Icons” option
>> [desktop right click ->Arrange Icons By ->Show Desktop Icons] Then I am not
>> seeing any missing updates. It is happening only if I am having desktop
>> icons. This observation is with/without drvSaveScreenBits().
>>
>> I have kept printscreen for each operations
>> (minimize/maximize/restore/close in below link. Please take a look.
>>
>> http://picasaweb.google.com/sarkar.iitr/DropBox?authkey=Gv1sRgCK7ytIaZiKuZuQE&pli=1&gsessionid=IAcxq6qffLxizznv4jBnCw#5539722869801166418
>>
>> As I already mentioned issue is only happening with XP-32/64 not in
>> Vista/Win7. I have found my driver is calling drvsavescreenbits() on XP but
>> not on win7. So I have implemented it but even after implementation behavior
>> is same. Infact worst than previous.
>>
>> Impelementation of drvsavescreenbits():
>> I am keeping local buffer in the driver when iMode == SS_SAVE and restore
>> it back when it is SS_RESTORE.
>>
>> With DrvSaveScreenBits() implementation when I am minimizing window some
>> sequential rectangles are getting appered and which are not at all
>> disapearing. Please see in my attached images.
>>
>> Please let me know if I have missed something here.
>> I am clueless… so please help me…
>> Any pointer or link will help a lot.
>>
>> Thanks in avance
>> /sarbojit
>>
>> On Fri, Nov 12, 2010 at 9:46 AM, Tim Roberts wrote:
>>
>>> Sarbojit Sarkar wrote:
>>> >
>>> > One more thing I have observed. If I move window diagonally upward
>>> > then one thinner line of left side of window and thinner line of
>>> > bottom is getting missed and similarly if I move it to diagonally down
>>> > thinner lines from top and right are getting missed, 
>>> > I recominf this on Win7 and DID not see this issue.
>>>
>>> This will be done as a CopyBits operation (to move the window) followed
>>> by an operation to fill in the desktop in the regions that are no longer
>>> covered by the window. The fill operation will either be a BitBlt
>>> pattern fill (if you have a solid background) or a CopyBits from a
>>> bitmap (if you have an image background).
>>>
>>> > One more doubt,
>>> > I have hooked HOOK_STRETCHBLT/HOOK_ALPHABLEND
>>> > /HOOK_BITBLT/HOOK_COPYBITS/HOOK_FILLPATH
>>> > /HOOK_GRADIENTFILL/HOOK_LINETO /HOOK_STROKEPATH/HOOK_TRANSPARENTBLT
>>> > /HOOK_TEXTOUT
>>> > but on XP I can see only copybits/textout mostly. I did lot of
>>> > operations but I did not see any other calls so I am not sure if I am
>>> > missing some events. Which needs to be hook for XP at least.
>>>
>>> BitBlt, CopyBits, and TextOut are by far the most common operations. If
>>> you’re running a drawing application, like mspaint or Illustrator, you
>>> might start to see StrokePath and FillPath calls. Do you have a
>>> driver-managed surface or a GDI-managed surface?
>>>
>>> > MOSTLY ISSUE IS COMING ONLY IS CASE OF SINGLE WINDOW MAXIMIZE/
>>> > MINIMIZE/RESTORE.
>>>
>>> You’re missing an operation somewhere. You will to debug this. Put in
>>> debug tracing to see which pixels are being affected by which
>>> operations. From that, you ought to be able to figure out which regions
>>> of the screen are missing.
>>>
>>> –
>>> Tim Roberts, xxxxx@probo.com
>>> Providenza & Boekelheide, Inc.
>>>
>>>
>>> —
>>> NTDEV is sponsored by OSR
>>>
>>> For our schedule of WDF, WDM, debugging and other seminars visit:
>>> http://www.osr.com/seminars
>>>
>>> To unsubscribe, visit the List Server section of OSR Online at
>>> http://www.osronline.com/page.cfm?name=ListServer
>>>
>>
>>
>
Sarbojit Sarkar wrote:
I have kept saveScreenBuffer size as 10 but some times it is exceeding
that value It means driver is not getting restore calls for at least
10 consecutive SS_SAVE. Is it because of some implementation error
or expected?
If it is expected then what whould be the correct way to handle it?
Shall I clear the complete buffer once buffer is filledup as those
will be stale data?
If you’re out of space, then you just return 0 from DrvSaveScreenBits.
I didn’t think the system ever nested those calls. That is, I thought
you always got SS_SAVE, followed by an SS_RESTORE, followed by an
SS_FREE. What are you returning from the SS_SAVE calls?
–
Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.
>> I have kept saveScreenBuffer size as 10 but some times it is exceeding
> that value It means driver is not getting restore calls for at least
> 10 consecutive SS_SAVE. Is it because of some implementation error
> or expected?
>
> If it is expected then what whould be the correct way to handle it?
> Shall I clear the complete buffer once buffer is filledup as those
> will be stale data?
If you’re out of space, then you just return 0 from DrvSaveScreenBits.
I didn’t think the system ever nested those calls. That is, I thought
you always got SS_SAVE, followed by an SS_RESTORE, followed by an
SS_FREE. What are you returning from the SS_SAVE calls?
Tim,
I am seeing SS_SAVE, followed by SS_RESTORE but I am not seeing SS_FREE
calls. Anyways I am not bothering about missing SS_FREE calls, my main
concern is I am not seeing SS_RESTORE call when I am clicking on close
button of the Window.
I was returning 0 but in that case driver will not be able to save the
screen and I am seeing continuous call only for SS_SAVE not for
SS_RESTORE/SS_FREE.
I am returning index where I have saved the latest screen.
/sarbojit
On Tue, Nov 16, 2010 at 12:51 AM, Tim Roberts wrote:
> Sarbojit Sarkar wrote:
> > I have kept saveScreenBuffer size as 10 but some times it is exceeding
> > that value It means driver is not getting restore calls for at least
> > 10 consecutive SS_SAVE. Is it because of some implementation error
> > or expected?
> >
> > If it is expected then what whould be the correct way to handle it?
> > Shall I clear the complete buffer once buffer is filledup as those
> > will be stale data?
>
> If you’re out of space, then you just return 0 from DrvSaveScreenBits.
>
> I didn’t think the system ever nested those calls. That is, I thought
> you always got SS_SAVE, followed by an SS_RESTORE, followed by an
> SS_FREE. What are you returning from the SS_SAVE calls?
>
> –
> Tim Roberts, xxxxx@probo.com
> Providenza & Boekelheide, Inc.
>
>
> —
> NTDEV is sponsored by OSR
>
> For our schedule of WDF, WDM, debugging and other seminars visit:
> http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
>
Sorry for late reply.
Thanks Tim! for your inputs.
Resolved the issue.
On Mon, Nov 15, 2010 at 9:13 PM, Sarbojit Sarkar wrote:
> >> I have kept saveScreenBuffer size as 10 but some times it is exceeding
>
> >> that value It means driver is not getting restore calls for at least
>
> >> 10 consecutive SS_SAVE. Is it because of some implementation error
>
> >> or expected?
>
> >>
>
> >> If it is expected then what whould be the correct way to handle it?
>
> >> Shall I clear the complete buffer once buffer is filledup as those
>
> >> will be stale data?
>
>
> >If you’re out of space, then you just return 0 from DrvSaveScreenBits.
>
>
> >I didn’t think the system ever nested those calls. That is, I thought
>
> >you always got SS_SAVE, followed by an SS_RESTORE, followed by an
> >SS_FREE. What are you returning from the SS_SAVE calls?
>
> Tim,
>
> I am seeing SS_SAVE, followed by SS_RESTORE but I am not seeing SS_FREE
> calls. Anyways I am not bothering about missing SS_FREE calls, my main
> concern is I am not seeing SS_RESTORE call when I am clicking on close
> button of the Window.
>
> I was returning 0 but in that case driver will not be able to save the
> screen and I am seeing continuous call only for SS_SAVE not for
> SS_RESTORE/SS_FREE.
>
> I am returning index where I have saved the latest screen.
>
> /sarbojit
>
> On Tue, Nov 16, 2010 at 12:51 AM, Tim Roberts wrote:
>
>> Sarbojit Sarkar wrote:
>> > I have kept saveScreenBuffer size as 10 but some times it is exceeding
>> > that value It means driver is not getting restore calls for at least
>> > 10 consecutive SS_SAVE. Is it because of some implementation error
>> > or expected?
>> >
>> > If it is expected then what whould be the correct way to handle it?
>> > Shall I clear the complete buffer once buffer is filledup as those
>> > will be stale data?
>>
>> If you’re out of space, then you just return 0 from DrvSaveScreenBits.
>>
>> I didn’t think the system ever nested those calls. That is, I thought
>> you always got SS_SAVE, followed by an SS_RESTORE, followed by an
>> SS_FREE. What are you returning from the SS_SAVE calls?
>>
>> –
>> Tim Roberts, xxxxx@probo.com
>> Providenza & Boekelheide, Inc.
>>
>>
>> —
>> NTDEV is sponsored by OSR
>>
>> For our schedule of WDF, WDM, debugging and other seminars visit:
>> http://www.osr.com/seminars
>>
>> To unsubscribe, visit the List Server section of OSR Online at
>> http://www.osronline.com/page.cfm?name=ListServer
>>
>
>