Getting VRAM address in WinPE - possible?

I’m dinking around with trying to directly bash VRAM on a WinPE 2.0 system, and while I see references to using DirectX calls to get VRAM size and allocations, there’s nothing that tells me what the mapped address of the currect active VRAM block is.

Is there any way to do this? The driver in PE surely knows, but I can’t find the source for it anywhere (if you know where it is, I’d appreciate you telling me)!

I’d like to write a VRAM test, but I know that involves getting the VRAM size, getting the aperture size, mapping each block into the aperature, bashing it, etc. etc. - seems like a decent challenge/learning experience/masochistic experience.

All help (including “go read this doc” with a link) appreciated!

…ed…

> I’d like to write a VRAM test

You cannot do this reliably in Windows.

MS-DOS (from Windows 98) or DJGPP are you friends.

Or write your own boot sector, A20 gate handling, small FS parser, and the set of libraries for DJGPP to write the bare-metal OSless apps.

Google is your friend, lots of such stuff is already done probably.


Maxim S. Shatskih
Windows DDK MVP
xxxxx@storagecraft.com
http://www.storagecraft.com

Ouch, no easy way, I guess. Maybe hacking the WinPE VESA driver is an option… worth looking into. Thanks!

xxxxx@woolyloach.com wrote:

Ouch, no easy way, I guess. Maybe hacking the WinPE VESA driver is an option… worth looking into. Thanks!

Absolutely. If you have access to the video driver source code, then
you can do anything you want. You can store the frame buffer address in
a dynamic registry location, and fetch it from your driver.

But you don’t have access to that source code, do you?


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