Subscribe to Windows IT Pro
June 04, 2009 12:00 AM

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

Windows IT Pro
InstantDoc ID #102210
Rating: (0)

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:

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.

Related Content:

ARTICLE TOOLS

Comments
    There are no comments to display. Be the first one!
You must log on before posting a comment.

Are you a new visitor? Register Here

advertisement

advertisement

Windows is a trademark of the Microsoft group of companies. Windows IT Pro is used by Penton Media Inc. under license from owner.