GetSystemInfo (Kernel32)
Last changed: Milkenm-65.49.2.17

.
Summary
Retrieves information about the current system

C# Signature:

    [DllImport("kernel32.dll", SetLastError=true)]
    internal static extern void GetSystemInfo(ref SYSTEM_INFO Info);

User-Defined Types:

    [StructLayout(LayoutKind.Sequential)]
    internal struct SYSTEM_INFO
    {
    internal ushort wProcessorArchitecture;
    internal ushort wReserved;
    internal uint dwPageSize;
    internal IntPtr lpMinimumApplicationAddress;
    internal IntPtr lpMaximumApplicationAddress;
    internal IntPtr dwActiveProcessorMask;
    internal uint dwNumberOfProcessors;
    internal uint dwProcessorType;
    internal uint dwAllocationGranularity;
    internal ushort wProcessorLevel;
    internal ushort wProcessorRevision;
    }

(from https://referencesource.microsoft.com/#mscorlib/microsoft/win32/win32native.cs,dbd1d00d77377879)

Alternative Managed API:

To determine whether the OS or Process is x64, using .NET 4, see System.Environment (Is64BitProcess, Is64BitOperatingSystem); http://msdn.microsoft.com/en-us/library/z8te35sa.aspx

Sample Code:

    void Test()
    {
        NativeMethods.SYSTEM_INFO
         info;
        NativeMethods.GetSystemInfo(out info);
    }

Documentation