Help about user-mode addresses > 2Gb

I’m trying to use ZwMapViewOfSection in order to map a memory page on a
specific virtual address (BaseAddress != NULL), but the function always
fails when the address specified is > 2Gb (MmHighestUserAddress).
My need is to have the same memory page ‘mirrored’ at multiple specific
offsets (0x00000000, 0x20000000, 0x80000000, 0xA0000000) in order to have,
from an user-mode program, *addr == *(addr + 0x20000000) and so on.
Is there any other way to obtain the same purpose ?

The 4GB virtual address space of a user process on a standard
installation of Windows is split into 2GB of user virtual address space
and 2GB of kernel virtual address space. The lower 2GB of user virtual
address space is accessible from your application. The full 4GB is only
accessible from the kernel. Your user application cannot access the
upper 2GB of kernel virtual address space.

  • Jay

Jay Talbott
Principal Consulting Engineer
SysPro Consulting, LLC
3519 E. South Fork Drive
Suite 201
Phoenix, AZ 85044
(480) 704-8045
xxxxx@sysproconsulting.com
http://www.sysproconsulting.com

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Sauro Puccini
Sent: Tuesday, May 13, 2003 2:34 AM
To: NT Developers Interest List
Subject: [ntdev] Help about user-mode addresses > 2Gb

I’m trying to use ZwMapViewOfSection in order to map a memory
page on a
specific virtual address (BaseAddress != NULL), but the
function always
fails when the address specified is > 2Gb (MmHighestUserAddress).
My need is to have the same memory page ‘mirrored’ at
multiple specific
offsets (0x00000000, 0x20000000, 0x80000000, 0xA0000000) in
order to have,
from an user-mode program, *addr == *(addr + 0x20000000) and so on.
Is there any other way to obtain the same purpose ?


You are currently subscribed to ntdev as:
xxxxx@sysproconsulting.com
To unsubscribe send a blank email to xxxxx@lists.osr.com