Notice: This website is an unofficial Microsoft Knowledge Base (hereinafter KB) archive and is intended to provide a reliable access to deleted content from Microsoft KB. All KB articles are owned by Microsoft Corporation. Read full disclaimer for more details.

How to detect the bitness of an operating system


INTRODUCTION

This article describes an All-In-One Code Framework sample that is available for download. This sample includes a step-by-step guide about how to write Visual Basic.NET, Visual C++.NET, Visual Basic.NET, or Visual C# code to programmatically determine whether the operating system of the current computer or of a remote computer is a 64-bit operating system.

Download information

To download this code sample, click the following link:


Technical overview

The samples introduce two solutions of detecting programmatically whether you are running on a 64-bit operating system or not.

Solution 1. Use the IsWow64Process function to check the bitness of the running system.

If the running process is a 64-bit process, the current operating system must be a 64-bit operating system.

#if defined(_WIN64)
return TRUE; // 64-bit programs run only on Win64

If the running process is a 32-bit process, you can use the IsWow64Process function to check whether the current operating system is a 64-bit operating system or not.

#elif defined(_WIN32)
// 32-bit programs run on both 32-bit and 64-bit Windows
BOOL f64bitOS = FALSE;
return ((DoesWin32MethodExist(L"kernel32.dll", "IsWow64Process") &&
IsWow64Process(GetCurrentProcess(), &f64bitOS)) && f64bitOS);


Solution 2. Use the AddressWidth property of the WMI class Win32_Processor to query the bitness of the local or any remote systems.

The AddressWidth property of the WMI class Win32_Processor dictates the current operating mode of the processor. On a 32-bit operating system, Win32_Processor.AddressWidth would be 32; on a 64-bit operating system, Win32_Processor.AddressWidth would be 64.

The OSArchitecture property of the WMI class Win32_OperatingSystem can also tell the bitness of OS, but the property is only available on Windows Vista and newer operating systems.


NoteFor more information about how to create the sample application and how to deploy the sample application, see the Readme.txt file that is included in the download package.

Technology category

  • Windows Base

Languages

This code sample contains the following programming languages:

LanguageProject Name
Visual C++CppCheckOSBitness
Visual C#CSCheckOSBitness
Visual Basic.NETVBCheckOSBitness

Prerequisites

  • This sample application was created by using Microsoft Visual Studio 2008 with Service Pack 1 installed.


↑ Back to the top


More Information

What is All-In-One Code Framework?

All-In-One Code Framework shows most Microsoft development techniques by using code samples in different programming languages. Each example is carefully selected, composed, and documented to show one common code scenario. For more information about All-In-One Code Framework, visit the following Web site:
http://1code.codeplex.com

How to find more All-In-One Code Framework samples

To find more All-In-One Code Framework samples, you can simply click the following link:
http://support.microsoft.com/gp/gp_kbcodefx

↑ Back to the top


References

How to detect programmatically whether you are running on 64-bit Windows
http://blogs.msdn.com/oldnewthing/archive/2005/02/01/364563.aspx


↑ Back to the top


Keywords: kbcodefx, kbrapidpub, kbnomt, atdownload, kbsurveynew, kbinfo, kb

↑ Back to the top

Article Info
Article ID : 2060044
Revision : 3
Created on : 4/18/2018
Published on : 4/19/2018
Exists online : False
Views : 148