Below is what I understand, please correct me if i'm wrong about the 3GB part?

  • a win32 application's virtual memory address space is limited by 4GB.

  • Of the 4GB memory address space each process gets, only 2GB is actually available for the program to use; the other 2GB is reserved for use by the kernel.

  • The /3GB boot option can allow some programs to use more memory address space.

If such an win32 application is running on a Win64 OS,

  • does the above 4GB limitation of total virtual memory address space accessible still applies?

  • does the 2GB limitation still applies?

  • is the /3GB option still available?



Referring to the table here, we can see that a 32 bit application can have three different virtual memory limitations:

A 32 bit application linked with the /LARGEADDRESSAWARE flag on x64 Windows will get 4GB to itself.

A 32 bit application linked with the /LARGEADDRESSAWARE flag on x86 Windows with the /3GB boot flag will have 3GB to itself.

In all other cases, the 32 bit application will get the default 2GB/2GB app/kernel split..


Yes, depends, no.

  • 1
    There is no /3GB option on a 64-bit OS, but none is needed. LAA 32-bit applications can always use a full 4GB of virtual memory on 64-bit versions of Windows. – David Schwartz Feb 21 '12 at 7:03
  • Er, not quite "always". A 32-bit app will have to be linked with /LARGEADDRESSAWARE to use 4GB of virtual memory. Otherwise it is limited to 2GB. – Jamie Hanrahan Aug 8 '14 at 20:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.