Can't capture screen in fullscreen mode.

Hi,
I am running media center in fullscreen mode and trying to do printscreen
but it is giving black screen. It seems bitblt is not able to capture the
screen in full screen mode. Then I thought, mirror driver might be able to
capture that but no luck :(. Interesting thing is that, it happens only with
full screen.

I am just wanted to know what happens when we do full screen and is there
any way to capture the screen in fullscreen mode?

T,hanks and regards
Ravi.

Ravi Gupta wrote:

I am running media center in fullscreen mode and trying to do
printscreen but it is giving black screen. It seems bitblt is not able
to capture the screen in full screen mode. Then I thought, mirror
driver might be able to capture that but no luck :(. Interesting thing
is that, it happens only with full screen.

I am just wanted to know what happens when we do full screen and is
there any way to capture the screen in fullscreen mode?

The phrase “fullscreen mode” does not have one single meaning, which
makes it difficult to draw any general conclusions.

Media Center is a Direct3D application; in that case, fullscreen mode
usually means exclusive mode, where they own the whole display, and they
can set whatever graphics mode they like. In particular, it’s quite
possible that they have placed the frame buffer in a graphics mode that
does not match the desktop, which “print screen” does not understand.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Tim, thanks for your reply.

By Full screen mode I meant to say,making full screen from application
window.

I was under notion that mirror driver disables Aero theme/direct3d/direct-x
but it seems it is not disabling.

I am looking for
1.) Any option at kernel/user level to catch the changes when application is
in full screen.
2.) Is there any way to get to know if running application is a
Direct-X/Direct3D application or user is trying to run a direct-x
application.
3.) If mirror driver does not disable Direct-x/direct3d then how to display
them from application or kernel level and please let me know if there could
be any probable issue I may face if I force fully disable them?

Thanks and regards
/sarbojit

On Mon, May 23, 2011 at 10:56 PM, Tim Roberts wrote:

> Ravi Gupta wrote:
> >
> > I am running media center in fullscreen mode and trying to do
> > printscreen but it is giving black screen. It seems bitblt is not able
> > to capture the screen in full screen mode. Then I thought, mirror
> > driver might be able to capture that but no luck :(. Interesting thing
> > is that, it happens only with full screen.
> >
> > I am just wanted to know what happens when we do full screen and is
> > there any way to capture the screen in fullscreen mode?
>
> The phrase “fullscreen mode” does not have one single meaning, which
> makes it difficult to draw any general conclusions.
>
> Media Center is a Direct3D application; in that case, fullscreen mode
> usually means exclusive mode, where they own the whole display, and they
> can set whatever graphics mode they like. In particular, it’s quite
> possible that they have placed the frame buffer in a graphics mode that
> does not match the desktop, which “print screen” does not understand.
>
> –
> 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
>

Ravi Gupta wrote:

By Full screen mode I meant to say,making full screen from application
window.

That doesn’t change things. Full screen in GDI terms (maximize) is
different from full screen in Video for Windows terms, which is
different from full screen in DirectDraw terms, which is different from
full screen in Direct3D terms. Each would need different handling. Some
of those things actually change the video mode to use a different driver.

I was under notion that mirror driver disables Aero
theme/direct3d/direct-x but it seems it is not disabling.

It disables Aero. It does not disable Direct3D or DirectDraw.

I am looking for
1.) Any option at kernel/user level to catch the changes when
application is in full screen.
2.) Is there any way to get to know if running application is a
Direct-X/Direct3D application or user is trying to run a direct-x
application.

You would have to hook the Direct3D APIs within the primary display
driver. That’s complicated and error-prone.

3.) If mirror driver does not disable Direct-x/direct3d then how to
display them from application or kernel level and please let me know
if there could be any probable issue I may face if I force fully
disable them?

If you disable Direct3D, then clearly Direct3D applications will not
run. That includes Media Center.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Thanks a lot for your response.

But I have observed an interesting thing, If I am changing registry key
“EmulationOnly” & “SoftwareOnly” to 1 then I am able to capture the screen.
What I understood from this is, by making those registry to 1, actually I am
disabling hardware acceleration. Now things will be handled at software
level.

Now the doubt is, after this registry change app will still use
Direct-X/Direct3D then why I am able to capture in this case? Basically I
wanted to know what exactly has changed with changing these registry keys
and will it cause any performance issue?

I just wanted to get notified if any Direct-x/Direct-3d app is running/
about to run. I don’t want to track the changes done by app. Just a
notification or is there any other way to identify the same?

On Tue, May 24, 2011 at 11:24 PM, Tim Roberts wrote:

> Ravi Gupta wrote:
> >
> > By Full screen mode I meant to say,making full screen from application
> > window.
>
> That doesn’t change things. Full screen in GDI terms (maximize) is
> different from full screen in Video for Windows terms, which is
> different from full screen in DirectDraw terms, which is different from
> full screen in Direct3D terms. Each would need different handling. Some
> of those things actually change the video mode to use a different driver.
>
> > I was under notion that mirror driver disables Aero
> > theme/direct3d/direct-x but it seems it is not disabling.
>
> It disables Aero. It does not disable Direct3D or DirectDraw.
>
> > I am looking for
> > 1.) Any option at kernel/user level to catch the changes when
> > application is in full screen.
> > 2.) Is there any way to get to know if running application is a
> > Direct-X/Direct3D application or user is trying to run a direct-x
> > application.
>
> You would have to hook the Direct3D APIs within the primary display
> driver. That’s complicated and error-prone.
>
> > 3.) If mirror driver does not disable Direct-x/direct3d then how to
> > display them from application or kernel level and please let me know
> > if there could be any probable issue I may face if I force fully
> > disable them?
>
> If you disable Direct3D, then clearly Direct3D applications will not
> run. That includes Media Center.
>
> –
> 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
>