@msdn=http://search.microsoft.com/search/results.aspx?qu=$$$ @pinvoke=http://pinvoke.net/$$$.htm Summary: Get the version information of the OS !!!!C# Signature: [DllImport("ntdll.dll", SetLastError=true)] static extern int RtlGetVersion(ref OSVERSIONINFOEXW versionInfo); !!!!Boo Signature: [DllImport("ntdll.dll", SetLastError : true)] def RtlGetVersion(ref versionInfo as OSVERSIONINFOEXW) as bool: pass !!!!User-Defined Types: enum PRODUCT_TYPE: VER_NT_WORKSTATION = 0x0000001 VER_NT_DOMAIN_CONTROLLER = 0x0000002 VER_NT_SERVER = 0x0000003 [StructLayout(LayoutKind.Sequential, CharSet : CharSet.Unicode)] struct OSVERSIONINFOEXW: dwOSVersionInfoSize as int dwMajorVersion as int dwMinorVersion as int dwBuildNumber as int dwPlatformId as int [MarshalAs(UnmanagedType.ByValTStr, SizeConst : 128)] szCSDVersion as string wServicePackMajor as UInt16 wServicePackMinor as UInt16 wSuiteMask as UInt16 wProductType as PRODUCT_TYPE wReserved as byte !!!!Alternative Managed API: Do you know one? Please contribute it! !!!!Notes: None. !!!!Tips & Tricks: Please add some! !!!!Sample Code: var osvi = default(OSVERSIONINFOEXW); osvi.dwOSVersionInfoSize = Marshal.SizeOf(typeof(OSVERSIONINFOEXW)); var result = RtlGetVersion(ref osvi); if (result != 0) { // TODO: Error handling } else { return osvi; } Documentation: RtlGetVersion@msdn on MSDN
Edit ntdll.RtlGetVersion
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.