Q. The PROCESSOR_ARCHITECTURE environment variable isn't returning the value I expect. What's wrong?

John Savill

June 3, 2009

1 Min Read
ITPro Today logo in a gray background | ITPro Today

A. Windows has a number of useful environment variables to identify information about the operating environment, but some don't return the data that the name would imply. The environment variable PROCESSOR_ARCHITECTURE would seem to return the processor architecture of the hardware the OS is running on, but this isn't actually the case.

If I look at PROCESSOR_ARCHITECTURE on my 64-bit Intel box I get the following:

C:>echo %PROCESSOR_ARCHITECTURE%AMD64

AMD64? Remember that people commonly say 64-bit and x64, but the actual architecture specification is AMD64 on both AMD and Intel processors. So what PROCESSOR_ARCHITECTURE actually returns is the architecture version of the OS instance build, which will be AMD64 or x86.

There is another caveat though. If you're running a 32-bit application on a 64-bit OS, the application is running in Windows on Windows 64 (WoW64, the 32-bit emulation environment). If you query PROCESSOR_ARCHITECTURE, you'll get a value of x86. You can easily see this by viewing the PROCESSOR_ARCHITECTURE variable from within the SYSWoW64 cmd.exe, as shown here.

Click to expand.



Related Reading:

  • Q. Why are the 64-bit versions of Windows so much bigger than the 32-bit versions?

  • What features do the 64-bit versions of the Windows family provide, and will I be able to run my 32-bit applications on a 64-bit platform?

  • Q. Does Windows Virtual PC in Windows 7 support 64-bit guest OSs?



Check out hundreds more useful Q&As like this in John Savill's FAQ for Windows. Also, watch instructional videos made by John at ITTV.net.

About the Author

Sign up for the ITPro Today newsletter
Stay on top of the IT universe with commentary, news analysis, how-to's, and tips delivered to your inbox daily.

You May Also Like