internal static OSVERSIONINFOEX RtlGetVersion()
        {
            var osVersionInfo = new OSVERSIONINFOEX {
                OSVersionInfoSize = Marshal.SizeOf(typeof(OSVERSIONINFOEX))
            };

            _RtlGetVersion(ref osVersionInfo);
            var err = Win32Error.GetLastError();

            if (!err.Equals(Win32Error.ERROR_SUCCESS))
            {
                if (osVersionInfo.MajorVersion == 0)
                {
                    err.ToHRESULT().ThrowIfFailed();
                }
            }

            return(osVersionInfo);
        }