public override string GetDataRow() { var ic = CultureInfo.InvariantCulture; return(String.Join(",", new [] { base.GetDataRow(), KINJ_AIRFREE.ToString("0.##", ic), UOZ_TCORR.ToString("0.#", ic), DUOZ_REGXX.ToString("0.#", ic), DIUOZ.ToString(ic), JUFRXX.ToString(ic), JFRXX1.ToString(ic), JFRXX2.ToString(ic), DELTA_RPM_XX.ToString(ic), DERR_RPM.ToString(ic), PXX_ZONE.ToString(ic), UGB_RXX.ToString("0.##", ic), StartFlags.ToString("X2"), TWAT_RT.ToString(ic), THR_RT_16.ToString(ic), RPM_RT.ToString(ic), RPM_RT_16.ToString(ic), RPM_THR_RT.ToString(ic), GBC_RT.ToString(ic), GBC_RT_16.ToString(ic), KGTC.ToString("0.#", ic), KBARR_GTC.ToString("0.#", ic), DUOZ.ToString("0.#", ic), DUOZ_LAUNCH.ToString(ic), LaunchFuelCutOff.ToString(ic), DELAY_FUEL_CUTOFF.ToString(ic), PRESS_RT.ToString(ic), Press.ToString("0.##", ic), TARGET_BOOST.ToString("0.##", ic), TURBO_DYNAMICS.ToString(ic), WGDC.ToString(ic), Tcharge.ToString(ic), TchargeCoeff.ToString("0.##", ic), FchargeGBC.ToString(ic), KGBC_DAD.ToString("0.##", ic), FchargeGBCFin.ToString(ic), Knock.ToString("X4"), KnockFlags.ToString("X2"), MisFireFlags.ToString("X2"), DGTC_DadRich.ToString("0.###", ic), TLE_PIN_0_7.ToString("X2"), TLE_PIN_8_15.ToString("X2") })); }
static void Main(string[] args) { try { StartFlags flags = StartFlags.RunAsAdmin; List <string> cmds = new List <string>(args); if (cmds.Count > 0 && cmds[0].Equals("-l")) { flags = StartFlags.None; cmds.RemoveAt(0); } if (cmds.Count < 1) { Console.WriteLine("[Usage] LaunchAdminProcess [-l] executable [command line]"); Console.WriteLine("Specify -l to start process as non-admin"); Environment.Exit(1); } string executable = cmds[0]; string commandline = executable; if (cmds.Count > 1) { commandline = cmds[1]; } using (var proc = LaunchAdminProcess(executable, commandline, flags, CreateProcessFlags.None, @"WinSta0\Default")) { Console.WriteLine("Start process {0}", proc.ProcessId); Console.WriteLine("Granted Access: {0}", proc.GrantedAccess); } } catch (Exception ex) { Console.WriteLine(ex); } }
static NtProcess LaunchAdminProcess(string executable, string cmdline, StartFlags flags, CreateProcessFlags create_flags, string desktop) { StartAppinfoService(); using (Client client = new Client()) { client.Connect(); create_flags |= CreateProcessFlags.UnicodeEnvironment; Struct_0 start_info = new Struct_0(); int retval = client.RAiLaunchAdminProcess(executable, cmdline, (int)flags, (int)create_flags, @"c:\windows", desktop, start_info, new NdrUInt3264(GetDesktopWindow()), -1, out Struct_2 proc_info, out int elev_type); if (retval != 0) { throw new Win32Exception(retval); } using (var thread = NtThread.FromHandle(new IntPtr(proc_info.Member8.Value))) { return(NtProcess.FromHandle(new IntPtr(proc_info.Member0.Value))); } } }