I am currently implementing a mirror driver for the primary display on
XP and have a question on the DrvAssertMode function. Based on the (RC1)
DDK documentation, I should return TRUE whenever bEnable is passed to me as
TRUE. The problem I run into is that if I do return TRUE in this case, mode
changes do not always appear correctly on the display (ie: from the real
display driver). If I always return FALSE, then the mode changes work
flawlessly.
Always returning FALSE, however, becomes a problem when you consider
MSDOS fullscreen mode. If you return FALSE from a call to DrvAssertMode
when the system wants to go into MSDOS fullscreen, the display does not
draw correctly (on the screen). And if you do the opposite and always
return TRUE, then mode changes to not always work correctly…
Is there any way to correctly handle this scenario or is this a bug in
the mirror driver handling under XP? I have looked at the perm2 and perm3
examples, but they don’t seem to be helping out… Is there something I’m
missing or another place I could dig into for help?
This brings me to a final question: When the system switches over to the
vga miniport driver to handle MSDOS fullscreen, what happens to the mirror
driver and how should I handle the return from DrvAssertMode for this case?
The DDK docs don’t specify how GDI will handle the scenario where the main
display driver says it can go to fullscreen MSDOS mode and the mirror says
it cannot… I guess my next step is to setup NetMeeting (which is
implemented as a mirror driver) and see if it handles the change or to try
running the driver under win2k to see if the behavior is any different…
Has anyone else had problems like this? If so I’d appreciate any
pointers / help that you could give…
Thanks,
sean
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