LARGEADDRESSAWARE merely means that if you are running in a configuration
that allows more than 2GB of user-mode address space, that your program will
be granted more than 2GB of user-mode address space. A program which is not
so marked will be limited to 2GB of user-mode address space independent of
what the OS is *capable* of giving.
In Win64, this means you will get nearly 4GB of user-mode address space; in
Win32, you will get nearly 3GB if booted in a 3GB configuration (/3GB prior
to Vista), otherwise you get nearly 2GB.
joe
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@hotmail.com
Sent: Wednesday, January 14, 2009 3:48 AM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] Regarding ProbeForRead
Did you actually read documentation - it clearly states that ProbeForRead()
will fail on any address in the kernel address space. LARGEADDRESSAWARE is
just a compiler option.Therefore, your code is going to fail on any system
that is configured with 2G of kernel address space -VirtualAlloc()and
friends will simply refuse to handle the address in this range even if you
specify it as a desired base address for your buffer.
In any case, I just love the statement “when we are compiling 32 bit
application with LARGEADDRESSAWARE we are getting address above 2GB as we
want”. Are you defining the address right at the compile time, i.e.
hardcoding it, or what??? After all, the fact that the app is able to handle
addresses above 2G does not necessarily mean that the system will allow
allocation of UM addresses in this range - it depends on kernel
configuration…
Anton Bassov
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
–
This message has been scanned for viruses and dangerous content by
MailScanner, and is believed to be clean.