
This is incorrect. The pointer limit is only limited to under 0x80000000 if you are linking without the /LARGEADDRESSAWARE flag. It is quite common to use this flag to enable the best performance of a 32-bit application on a 64-bit version of Windows. It can also have some benefit when using the boot.ini /3GB tuning.
http://msdn.microsoft.com/en-us/library/wz223b1z%28VS.80%29.aspx
Yes there is the possibility to expand the user space to 3GB at the cost of global system performance and system instability (hope your drivers aren't assuming anything about the address of the buffers in the irps they'll get ;) although if I remember correctly to get the WHQL certification you need to run in 3GB so if you have WHQL drivers you should be fine) on Windows 32-bit (the infamous /3GB switch you mentioned). I forgot that Windows 64 32-bit VM automatically expanded the user space to 3GB when the switch was on. That's safer in this context as the drivers deal with 64-bit address and all requests go through the VM. Anyway, I don't mean to argue about the ideal size of the user space in Windows 32, you're right the library should be able to be detect whether or not a 32-bit application has got 3GB or 2GB space.
On 64-bit OSes you really can use the large pointers to store data and therefore have very compact structures in memory. Correct me if I'm wrong but currently most OSes only allow several gigabytes of virtual memory for any given user process (something like 100-200 GB), that means there's room for expression! :D
The limit is as high as 8TB on some Windows 64-bit Operating Systems. http://msdn.microsoft.com/en-us/library/aa366778%28VS.85%29.aspx
You're right! I was mixing up virtual and physical memory limits. That's the amount of physical memory that is limited to 128 GB (mmm I see you can even load up 2 TB on the datacenter edition, having your whole movie collection in memory is some sort of major feature methinks :p). That leaves (in theory) around 21 bits to store information. -- EA __________ Information from ESET NOD32 Antivirus, version of virus signature database 4403 (20090907) __________ The message was checked by ESET NOD32 Antivirus. http://www.eset.com