Re: [ntdev] Driver for taking a screenshot

This is quite possible with specialized hardware, but as you say it is for your course, I doubt that you can affect that

As Tim says, it is entirely possible, in the same way that a module in KM can do anything, but there are no plausible ways to do this in a engineer’s mind

Sent from Surface Pro

From: Tim Roberts
Sent: ‎Thursday‎, ‎May‎ ‎21‎, ‎2015 ‎5‎:‎31‎ ‎PM
To: Windows System Software Devs Interest List

xxxxx@mail.ru wrote:

> No. This is absolutely the wrong way to do this. The desktop and the visible screen are user-mode concepts, not kernel concepts.
Yes, I understand. But still, is there a way to copy video memory (like in DOS) or map it to user space memory or something like this?

No. In the DOS era, the location of the EGA/VGA frame buffers was
well-known and fixed in memory. In today’s world, the frame buffer
memory is a resource that belongs to the display driver. You don’t know
where it is located, nor when it might be safe to access it, nor what
format it is in.

You can use DirectDraw from an application to get a user-mode address
for the primary surface. You can use the new Desktop Duplication API to
get a snapshot of the current desktop. Or, as I said, you can BitBlt to
a memory bitmap. All from user mode.

This is for my course project and it’s a great opportunity to learn something about drivers and kernel-mode, I think.

Not really. Graphics is the wrong choice for learning about kernel mode.

There are a billion USB experimenter’s kits out there that would make an
excellent basis for something like this. You can get a Teensy board
with 32 digital I/O lines and go crazy inventing real-world things to
control and respond to.


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


NTDEV is sponsored by OSR

Visit the list at: http://www.osronline.com/showlists.cfm?list=ntdev

OSR is HIRING!! See http://www.osr.com/careers

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