
I would be alarmed if it was floating around. My concern was the
On Tue, 8 Sep 2009 08:47:15 +0100, Neil Groves <neil@grovescomputing.com> wrote: perceived
lack of documented guarantees. I was ignorant of any documentation with respect to the pointer ranges in the 64-bit Windows Operating Systems. My motivation was to clarify the safe useable ranges and ensure we weren't going to use undocumented implementation details by default.
They are safe and clearly documented. What could happen is an extension of the user range, if someday 8 TB of memory shows to be too limited for user processes (it will happen some day, don't worry ;) ). You don't care too much about the extensions of the paged pool and non paged pool from an user process point of view. That may change earlier. Anyway, we have time before this happens and it will be clearly explained and documented. Failure to do so would result in the breakage of many system components.
I was unaware of these exact address ranges, but you are correct. I have found documentation to this effect here: http://www.amd64.ru/download.php?uid=24504
The documentation for these ranges is not nearly as easy to find as the safe ranges for the 32-bit platforms.
This is because the 64-bit platform is (it saddens me) not yet widely adopted, I guess.
The fact that these are safe documented user ranges alters my opinion. Does anyone know of a way to determine the linker flag setting /LARGEADDRESSAWARE, or is it better to implement a pessimisation?
Yes, GlobalMemoryStatusEx will give you the total amount of virtual memory available, but we're talking about half of a bit. :p Regards. -- EA