I'm trying to write a DirectX program that captures a screen shot that includes any graphics created by other DirectX programs, in particular those with overlays. But I've read that EnumSurfaces only can find existing surfaces owned by my process - which seems to match my experience.
Is there some way around this? For example, has anyone tried injecting DirectX code into other processes? Written a special video driver to access the video memory directly? Are there obvious problems I should think about before embarking upon this?