@msdn=http://msdn.microsoft.com/en-us/library/windows/desktop/ms724381(v=vs.85).aspx @pinvoke=http://pinvoke.net/$$$.htm Summary: Retrieves information about the current system !!!!C# Signature: [DllImport("kernel32.dll", SetLastError=false)] public static extern void GetSystemInfo(out SYSTEM_INFO Info); !!!!User-Defined Types: public enum ProcessorArchitecture { X86 = 0, X64 = 9, @Arm = -1, Itanium = 6, Unknown = 0xFFFF, } [StructLayout(LayoutKind.Sequential)] public struct SystemInfo { public ProcessorArchitecture ProcessorArchitecture; // WORD public uint PageSize; // DWORD public IntPtr MinimumApplicationAddress; // (long)void* public IntPtr MaximumApplicationAddress; // (long)void* public IntPtr ActiveProcessorMask; // DWORD* public uint NumberOfProcessors; // DWORD (WTF) public uint ProcessorType; // DWORD public uint AllocationGranularity; // DWORD public ushort ProcessorLevel; // WORD public ushort ProcessorRevision; // WORD } Alternative C# structure[s]: http://msdn.microsoft.com/en-us/library/windows/desktop/ms724958%28v=vs.85%29.aspx [StructLayout( LayoutKind.Explicit )] public struct SYSTEM_INFO_UNION { [FieldOffset( 0 )] public UInt32 OemId; [FieldOffset( 0 )] public UInt16 ProcessorArchitecture; [FieldOffset( 2 )] public UInt16 Reserved; } [StructLayout( LayoutKind.Sequential, Pack = 1 )] public struct SYSTEM_INFO { public SYSTEM_INFO_UNION CpuInfo; public UInt32 PageSize; public UInt32 MinimumApplicationAddress; public UInt32 MaximumApplicationAddress; public UInt32 ActiveProcessorMask; public UInt32 NumberOfProcessors; public UInt32 ProcessorType; public UInt32 AllocationGranularity; public UInt16 ProcessorLevel; public UInt16 ProcessorRevision; } !!!!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: GetSystemInfo@msdn on MSDN
Edit kernel32.GetSyste...
You do not have permission to change this page. If you feel this is in error, please send feedback with the contact link on the main page.