ReactOS.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2024
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
April
March
February
January
2011
December
November
October
September
August
July
June
May
April
March
February
January
2010
December
November
October
September
August
July
June
May
April
March
February
January
2009
December
November
October
September
August
July
June
May
April
March
February
January
2008
December
November
October
September
August
July
June
May
April
March
February
January
2007
December
November
October
September
August
July
June
May
April
March
February
January
2006
December
November
October
September
August
July
June
May
April
March
February
January
2005
December
November
October
September
August
July
June
May
April
March
February
January
2004
December
November
October
September
August
July
June
May
April
March
February
List overview
Download
Ros-diffs
June 2006
----- 2024 -----
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
----- 2010 -----
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
----- 2009 -----
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
----- 2008 -----
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
----- 2007 -----
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
----- 2006 -----
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
----- 2005 -----
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
----- 2004 -----
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
ros-diffs@reactos.org
19 participants
595 discussions
Start a n
N
ew thread
[janderwald] 22503: * make intermediate / outpath optional * if u want to continue using vc specific path / configuration add flag -vo{version|configuration}
by janderwald@svn.reactos.org
Author: janderwald Date: Thu Jun 22 22:50:00 2006 New Revision: 22503 URL:
http://svn.reactos.ru/svn/reactos?rev=22503&view=rev
Log: * make intermediate / outpath optional * if u want to continue using vc specific path / configuration add flag -vo{version|configuration} Modified: trunk/reactos/tools/rbuild/backend/msvc/vcprojmaker.cpp trunk/reactos/tools/rbuild/configuration.cpp trunk/reactos/tools/rbuild/rbuild.cpp trunk/reactos/tools/rbuild/rbuild.h Modified: trunk/reactos/tools/rbuild/backend/msvc/vcprojmaker.cpp URL:
http://svn.reactos.ru/svn/reactos/trunk/reactos/tools/rbuild/backend/msvc/v…
============================================================================== --- trunk/reactos/tools/rbuild/backend/msvc/vcprojmaker.cpp (original) +++ trunk/reactos/tools/rbuild/backend/msvc/vcprojmaker.cpp Thu Jun 22 22:50:00 2006 @@ -85,7 +85,9 @@ string outenv = Environment::GetOutputPath (); string outdir; string intdir; - + string vcdir; + + if ( intenv == "obj-i386" ) intdir = path_basedir + "obj-i386"; /* append relative dir from project dir */ else @@ -96,6 +98,10 @@ else outdir = outenv; + if ( configuration.UseVSVersionInPath ) + { + vcdir = "\\" + _get_vc_dir(); + } // TODO FIXME - need more checks here for 'sys' and possibly 'drv'? bool console = exe && (module.type == Win32CUI); @@ -220,8 +226,18 @@ fprintf ( OUT, "\t\t<Configuration\r\n" ); fprintf ( OUT, "\t\t\tName=\"%s|Win32\"\r\n", cfg.name.c_str() ); - fprintf ( OUT, "\t\t\tOutputDirectory=\"%s\\%s\\%s\\%s\"\r\n", outdir.c_str (), module.GetBasePath ().c_str (), _get_vc_dir().c_str (), cfg.name.c_str() ); - fprintf ( OUT, "\t\t\tIntermediateDirectory=\"%s\\%s\\%s\\%s\"\r\n", intdir.c_str (), module.GetBasePath ().c_str (), _get_vc_dir().c_str (), cfg.name.c_str() ); + + if ( configuration.UseVSConfigurationInPath ) + { + fprintf ( OUT, "\t\t\tOutputDirectory=\"%s\\%s%s\\%s\"\r\n", outdir.c_str (), module.GetBasePath ().c_str (), vcdir.c_str (), cfg.name.c_str() ); + fprintf ( OUT, "\t\t\tIntermediateDirectory=\"%s\\%s%s\\%s\"\r\n", intdir.c_str (), module.GetBasePath ().c_str (), vcdir.c_str (), cfg.name.c_str() ); + } + else + { + fprintf ( OUT, "\t\t\tOutputDirectory=\"%s\\%s%s\"\r\n", outdir.c_str (), module.GetBasePath ().c_str (), vcdir.c_str () ); + fprintf ( OUT, "\t\t\tIntermediateDirectory=\"%s\\%s%s\"\r\n", intdir.c_str (), module.GetBasePath ().c_str (), vcdir.c_str () ); + } + fprintf ( OUT, "\t\t\tConfigurationType=\"%d\"\r\n", exe ? 1 : dll ? 2 : lib ? 4 : -1 ); fprintf ( OUT, "\t\t\tCharacterSet=\"2\">\r\n" ); Modified: trunk/reactos/tools/rbuild/configuration.cpp URL:
http://svn.reactos.ru/svn/reactos/trunk/reactos/tools/rbuild/configuration.…
============================================================================== --- trunk/reactos/tools/rbuild/configuration.cpp (original) +++ trunk/reactos/tools/rbuild/configuration.cpp Thu Jun 22 22:50:00 2006 @@ -30,6 +30,8 @@ MakeHandlesInstallDirectories = false; GenerateProxyMakefilesInSourceTree = false; InstallFiles = false; + UseVSConfigurationInPath = false; + UseVSVersionInPath = false; } Configuration::~Configuration () Modified: trunk/reactos/tools/rbuild/rbuild.cpp URL:
http://svn.reactos.ru/svn/reactos/trunk/reactos/tools/rbuild/rbuild.cpp?rev…
============================================================================== --- trunk/reactos/tools/rbuild/rbuild.cpp (original) +++ trunk/reactos/tools/rbuild/rbuild.cpp Thu Jun 22 22:50:00 2006 @@ -86,6 +86,8 @@ char switchChar2, char* switchStart ) { + string temp; + switch ( switchChar2 ) { case 's': @@ -111,6 +113,19 @@ case 'c': configuration.VSConfigurationType = string (&switchStart[3]); configuration.InstallFiles = true; + break; + case 'o': + if ( strlen ( switchStart ) <= 3 ) + { + printf ( "Invalid switch\n" ); + return false; + } + temp = string (&switchStart[3]); + if ( temp.find ("configuration") != string::npos ) + configuration.UseVSConfigurationInPath = true; + + if ( temp.find ("version") != string::npos ) + configuration.UseVSVersionInPath = true; break; default: printf ( "Unknown switch -d%c\n", @@ -238,6 +253,7 @@ printf ( " -ps Generate proxy makefiles in source tree instead of the output.\n" ); printf ( " tree.\n" ); printf ( " -vs{version} Version of MS VS project files. Default is %s.\n", MS_VS_DEF_VERSION ); + printf ( " -vo{version|configuration} Adds subdirectory path to the default Intermediate-Outputdirectory.\n" ); printf ( "\n" ); printf ( " buildsystem Target build system. Can be one of:\n" ); Modified: trunk/reactos/tools/rbuild/rbuild.h URL:
http://svn.reactos.ru/svn/reactos/trunk/reactos/tools/rbuild/rbuild.h?rev=2…
============================================================================== --- trunk/reactos/tools/rbuild/rbuild.h (original) +++ trunk/reactos/tools/rbuild/rbuild.h Thu Jun 22 22:50:00 2006 @@ -142,6 +142,8 @@ std::string CheckDependenciesForModuleOnlyModule; std::string VSProjectVersion; std::string VSConfigurationType; + bool UseVSVersionInPath; + bool UseVSConfigurationInPath; bool MakeHandlesInstallDirectories; bool GenerateProxyMakefilesInSourceTree; bool InstallFiles;
18 years, 4 months
1
0
0
0
[gedmurphy] 22502: - split the code up into logical files and reformat - more code for NTP time setting - many other code improvements
by gedmurphy@svn.reactos.org
Author: gedmurphy Date: Thu Jun 22 21:13:29 2006 New Revision: 22502 URL:
http://svn.reactos.ru/svn/reactos?rev=22502&view=rev
Log: - split the code up into logical files and reformat - more code for NTP time setting - many other code improvements Added: trunk/reactos/dll/cpl/timedate/dateandtime.c trunk/reactos/dll/cpl/timedate/internettime.c trunk/reactos/dll/cpl/timedate/timezone.c Modified: trunk/reactos/dll/cpl/timedate/Cz.rc trunk/reactos/dll/cpl/timedate/De.rc trunk/reactos/dll/cpl/timedate/Dk.rc trunk/reactos/dll/cpl/timedate/En.rc trunk/reactos/dll/cpl/timedate/Es.rc trunk/reactos/dll/cpl/timedate/Fr.rc trunk/reactos/dll/cpl/timedate/Gr.rc trunk/reactos/dll/cpl/timedate/Hu.rc trunk/reactos/dll/cpl/timedate/It.rc trunk/reactos/dll/cpl/timedate/Ja.rc trunk/reactos/dll/cpl/timedate/Nl.rc trunk/reactos/dll/cpl/timedate/Pl.rc trunk/reactos/dll/cpl/timedate/Ru.rc trunk/reactos/dll/cpl/timedate/Sv.rc trunk/reactos/dll/cpl/timedate/clock.c trunk/reactos/dll/cpl/timedate/monthcal.c trunk/reactos/dll/cpl/timedate/ntpclient.c trunk/reactos/dll/cpl/timedate/resource.h trunk/reactos/dll/cpl/timedate/timedate.c trunk/reactos/dll/cpl/timedate/timedate.h trunk/reactos/dll/cpl/timedate/timedate.rbuild [This mail would be too long, it was shortened to contain the URLs only.] Modified: trunk/reactos/dll/cpl/timedate/Cz.rc URL:
http://svn.reactos.ru/svn/reactos/trunk/reactos/dll/cpl/timedate/Cz.rc?rev=…
Modified: trunk/reactos/dll/cpl/timedate/De.rc URL:
http://svn.reactos.ru/svn/reactos/trunk/reactos/dll/cpl/timedate/De.rc?rev=…
Modified: trunk/reactos/dll/cpl/timedate/Dk.rc URL:
http://svn.reactos.ru/svn/reactos/trunk/reactos/dll/cpl/timedate/Dk.rc?rev=…
Modified: trunk/reactos/dll/cpl/timedate/En.rc URL:
http://svn.reactos.ru/svn/reactos/trunk/reactos/dll/cpl/timedate/En.rc?rev=…
Modified: trunk/reactos/dll/cpl/timedate/Es.rc URL:
http://svn.reactos.ru/svn/reactos/trunk/reactos/dll/cpl/timedate/Es.rc?rev=…
Modified: trunk/reactos/dll/cpl/timedate/Fr.rc URL:
http://svn.reactos.ru/svn/reactos/trunk/reactos/dll/cpl/timedate/Fr.rc?rev=…
Modified: trunk/reactos/dll/cpl/timedate/Gr.rc URL:
http://svn.reactos.ru/svn/reactos/trunk/reactos/dll/cpl/timedate/Gr.rc?rev=…
Modified: trunk/reactos/dll/cpl/timedate/Hu.rc URL:
http://svn.reactos.ru/svn/reactos/trunk/reactos/dll/cpl/timedate/Hu.rc?rev=…
Modified: trunk/reactos/dll/cpl/timedate/It.rc URL:
http://svn.reactos.ru/svn/reactos/trunk/reactos/dll/cpl/timedate/It.rc?rev=…
Modified: trunk/reactos/dll/cpl/timedate/Ja.rc URL:
http://svn.reactos.ru/svn/reactos/trunk/reactos/dll/cpl/timedate/Ja.rc?rev=…
Modified: trunk/reactos/dll/cpl/timedate/Nl.rc URL:
http://svn.reactos.ru/svn/reactos/trunk/reactos/dll/cpl/timedate/Nl.rc?rev=…
Modified: trunk/reactos/dll/cpl/timedate/Pl.rc URL:
http://svn.reactos.ru/svn/reactos/trunk/reactos/dll/cpl/timedate/Pl.rc?rev=…
Modified: trunk/reactos/dll/cpl/timedate/Ru.rc URL:
http://svn.reactos.ru/svn/reactos/trunk/reactos/dll/cpl/timedate/Ru.rc?rev=…
Modified: trunk/reactos/dll/cpl/timedate/Sv.rc URL:
http://svn.reactos.ru/svn/reactos/trunk/reactos/dll/cpl/timedate/Sv.rc?rev=…
Modified: trunk/reactos/dll/cpl/timedate/clock.c URL:
http://svn.reactos.ru/svn/reactos/trunk/reactos/dll/cpl/timedate/clock.c?re…
Added: trunk/reactos/dll/cpl/timedate/dateandtime.c URL:
http://svn.reactos.ru/svn/reactos/trunk/reactos/dll/cpl/timedate/dateandtim…
Added: trunk/reactos/dll/cpl/timedate/internettime.c URL:
http://svn.reactos.ru/svn/reactos/trunk/reactos/dll/cpl/timedate/internetti…
Modified: trunk/reactos/dll/cpl/timedate/monthcal.c URL:
http://svn.reactos.ru/svn/reactos/trunk/reactos/dll/cpl/timedate/monthcal.c…
Modified: trunk/reactos/dll/cpl/timedate/ntpclient.c URL:
http://svn.reactos.ru/svn/reactos/trunk/reactos/dll/cpl/timedate/ntpclient.…
Modified: trunk/reactos/dll/cpl/timedate/resource.h URL:
http://svn.reactos.ru/svn/reactos/trunk/reactos/dll/cpl/timedate/resource.h…
Modified: trunk/reactos/dll/cpl/timedate/timedate.c URL:
http://svn.reactos.ru/svn/reactos/trunk/reactos/dll/cpl/timedate/timedate.c…
Modified: trunk/reactos/dll/cpl/timedate/timedate.h URL:
http://svn.reactos.ru/svn/reactos/trunk/reactos/dll/cpl/timedate/timedate.h…
Modified: trunk/reactos/dll/cpl/timedate/timedate.rbuild URL:
http://svn.reactos.ru/svn/reactos/trunk/reactos/dll/cpl/timedate/timedate.r…
Added: trunk/reactos/dll/cpl/timedate/timezone.c URL:
http://svn.reactos.ru/svn/reactos/trunk/reactos/dll/cpl/timedate/timezone.c…
18 years, 4 months
1
0
0
0
[cwittich] 22501: -some translations: GreatLordish -> English
by cwittich@svn.reactos.org
Author: cwittich Date: Thu Jun 22 16:53:54 2006 New Revision: 22501 URL:
http://svn.reactos.ru/svn/reactos?rev=22501&view=rev
Log: -some translations: GreatLordish -> English Modified: trunk/tools/Qemu GUI/Qemu GUI.suo trunk/tools/Qemu GUI/frmMain.cs Modified: trunk/tools/Qemu GUI/Qemu GUI.suo URL:
http://svn.reactos.ru/svn/reactos/trunk/tools/Qemu%20GUI/Qemu%20GUI.suo?rev…
============================================================================== Binary files - no diff available. Modified: trunk/tools/Qemu GUI/frmMain.cs URL:
http://svn.reactos.ru/svn/reactos/trunk/tools/Qemu%20GUI/frmMain.cs?rev=225…
============================================================================== --- trunk/tools/Qemu GUI/frmMain.cs (original) +++ trunk/tools/Qemu GUI/frmMain.cs Thu Jun 22 16:53:54 2006 @@ -127,25 +127,25 @@ private ComboBox cboVDKDrive; private ComboBox cboMachine; private Label lblImageSizeMB; - private GroupBox groupBox3; + private GroupBox grpNetwork; private GroupBox groupBox1; private NumericUpDown numericUpDown9; private NumericUpDown numericUpDown10; private NumericUpDown numericUpDown11; private NumericUpDown numericUpDown12; - private Label label3; + private Label lblGateway; private NumericUpDown numericUpDown5; private NumericUpDown numericUpDown6; private NumericUpDown numericUpDown7; private NumericUpDown numericUpDown8; - private Label label2; + private Label lblNetmask; private NumericUpDown numericUpDown4; private NumericUpDown numericUpDown3; private NumericUpDown numericUpDown2; private NumericUpDown numericUpDown1; - private Label label1; - private RadioButton radioButton2; - private RadioButton radioButton1; + private Label lblIP; + private RadioButton optStaticIP; + private RadioButton optDHCP; private QEmu qemu; public frmMain() @@ -277,6 +277,25 @@ this.button20 = new System.Windows.Forms.Button(); this.chkVBE30 = new System.Windows.Forms.CheckBox(); this.tabNetwork = new System.Windows.Forms.TabPage(); + this.grpNetwork = new System.Windows.Forms.GroupBox(); + this.numericUpDown9 = new System.Windows.Forms.NumericUpDown(); + this.numericUpDown10 = new System.Windows.Forms.NumericUpDown(); + this.numericUpDown11 = new System.Windows.Forms.NumericUpDown(); + this.numericUpDown12 = new System.Windows.Forms.NumericUpDown(); + this.lblGateway = new System.Windows.Forms.Label(); + this.numericUpDown5 = new System.Windows.Forms.NumericUpDown(); + this.numericUpDown6 = new System.Windows.Forms.NumericUpDown(); + this.numericUpDown7 = new System.Windows.Forms.NumericUpDown(); + this.numericUpDown8 = new System.Windows.Forms.NumericUpDown(); + this.lblNetmask = new System.Windows.Forms.Label(); + this.numericUpDown4 = new System.Windows.Forms.NumericUpDown(); + this.numericUpDown3 = new System.Windows.Forms.NumericUpDown(); + this.numericUpDown2 = new System.Windows.Forms.NumericUpDown(); + this.numericUpDown1 = new System.Windows.Forms.NumericUpDown(); + this.lblIP = new System.Windows.Forms.Label(); + this.optStaticIP = new System.Windows.Forms.RadioButton(); + this.optDHCP = new System.Windows.Forms.RadioButton(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); this.tabPaths = new System.Windows.Forms.TabPage(); this.groupBox2 = new System.Windows.Forms.GroupBox(); this.txtQEmuPath = new System.Windows.Forms.TextBox(); @@ -293,25 +312,6 @@ this.saveFileDialog1 = new System.Windows.Forms.SaveFileDialog(); this.btnLoad = new System.Windows.Forms.Button(); this.btnSave = new System.Windows.Forms.Button(); - this.groupBox1 = new System.Windows.Forms.GroupBox(); - this.groupBox3 = new System.Windows.Forms.GroupBox(); - this.radioButton1 = new System.Windows.Forms.RadioButton(); - this.radioButton2 = new System.Windows.Forms.RadioButton(); - this.label1 = new System.Windows.Forms.Label(); - this.numericUpDown1 = new System.Windows.Forms.NumericUpDown(); - this.numericUpDown2 = new System.Windows.Forms.NumericUpDown(); - this.numericUpDown3 = new System.Windows.Forms.NumericUpDown(); - this.numericUpDown4 = new System.Windows.Forms.NumericUpDown(); - this.numericUpDown5 = new System.Windows.Forms.NumericUpDown(); - this.numericUpDown6 = new System.Windows.Forms.NumericUpDown(); - this.numericUpDown7 = new System.Windows.Forms.NumericUpDown(); - this.numericUpDown8 = new System.Windows.Forms.NumericUpDown(); - this.label2 = new System.Windows.Forms.Label(); - this.numericUpDown9 = new System.Windows.Forms.NumericUpDown(); - this.numericUpDown10 = new System.Windows.Forms.NumericUpDown(); - this.numericUpDown11 = new System.Windows.Forms.NumericUpDown(); - this.numericUpDown12 = new System.Windows.Forms.NumericUpDown(); - this.label3 = new System.Windows.Forms.Label(); this.grpMachine.SuspendLayout(); this.HardDisk2.SuspendLayout(); this.tabMisc.SuspendLayout(); @@ -342,22 +342,22 @@ this.grpParallel.SuspendLayout(); this.groupBox16.SuspendLayout(); this.tabNetwork.SuspendLayout(); - this.tabPaths.SuspendLayout(); - this.groupBox2.SuspendLayout(); - this.tabAbout.SuspendLayout(); - this.groupBox3.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDown3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDown4)).BeginInit(); + this.grpNetwork.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown9)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown10)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown11)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown12)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDown5)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDown6)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDown7)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.numericUpDown8)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDown9)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDown10)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDown11)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDown12)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).BeginInit(); + this.tabPaths.SuspendLayout(); + this.groupBox2.SuspendLayout(); + this.tabAbout.SuspendLayout(); this.SuspendLayout(); // // grpMachine @@ -1346,7 +1346,7 @@ // // tabNetwork // - this.tabNetwork.Controls.Add(this.groupBox3); + this.tabNetwork.Controls.Add(this.grpNetwork); this.tabNetwork.Controls.Add(this.groupBox1); this.tabNetwork.Location = new System.Drawing.Point(4, 22); this.tabNetwork.Name = "tabNetwork"; @@ -1354,6 +1354,355 @@ this.tabNetwork.TabIndex = 7; this.tabNetwork.Text = "Network"; this.tabNetwork.UseVisualStyleBackColor = true; + // + // grpNetwork + // + this.grpNetwork.Controls.Add(this.numericUpDown9); + this.grpNetwork.Controls.Add(this.numericUpDown10); + this.grpNetwork.Controls.Add(this.numericUpDown11); + this.grpNetwork.Controls.Add(this.numericUpDown12); + this.grpNetwork.Controls.Add(this.lblGateway); + this.grpNetwork.Controls.Add(this.numericUpDown5); + this.grpNetwork.Controls.Add(this.numericUpDown6); + this.grpNetwork.Controls.Add(this.numericUpDown7); + this.grpNetwork.Controls.Add(this.numericUpDown8); + this.grpNetwork.Controls.Add(this.lblNetmask); + this.grpNetwork.Controls.Add(this.numericUpDown4); + this.grpNetwork.Controls.Add(this.numericUpDown3); + this.grpNetwork.Controls.Add(this.numericUpDown2); + this.grpNetwork.Controls.Add(this.numericUpDown1); + this.grpNetwork.Controls.Add(this.lblIP); + this.grpNetwork.Controls.Add(this.optStaticIP); + this.grpNetwork.Controls.Add(this.optDHCP); + this.grpNetwork.Location = new System.Drawing.Point(222, 3); + this.grpNetwork.Name = "grpNetwork"; + this.grpNetwork.Size = new System.Drawing.Size(235, 195); + this.grpNetwork.TabIndex = 1; + this.grpNetwork.TabStop = false; + this.grpNetwork.Text = "Network"; + // + // numericUpDown9 + // + this.numericUpDown9.Location = new System.Drawing.Point(173, 157); + this.numericUpDown9.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.numericUpDown9.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.numericUpDown9.Name = "numericUpDown9"; + this.numericUpDown9.Size = new System.Drawing.Size(46, 20); + this.numericUpDown9.TabIndex = 27; + this.numericUpDown9.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // numericUpDown10 + // + this.numericUpDown10.Location = new System.Drawing.Point(121, 157); + this.numericUpDown10.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.numericUpDown10.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.numericUpDown10.Name = "numericUpDown10"; + this.numericUpDown10.Size = new System.Drawing.Size(46, 20); + this.numericUpDown10.TabIndex = 26; + this.numericUpDown10.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // numericUpDown11 + // + this.numericUpDown11.Location = new System.Drawing.Point(69, 157); + this.numericUpDown11.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.numericUpDown11.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.numericUpDown11.Name = "numericUpDown11"; + this.numericUpDown11.Size = new System.Drawing.Size(46, 20); + this.numericUpDown11.TabIndex = 25; + this.numericUpDown11.Value = new decimal(new int[] { + 168, + 0, + 0, + 0}); + // + // numericUpDown12 + // + this.numericUpDown12.Location = new System.Drawing.Point(17, 157); + this.numericUpDown12.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.numericUpDown12.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.numericUpDown12.Name = "numericUpDown12"; + this.numericUpDown12.Size = new System.Drawing.Size(46, 20); + this.numericUpDown12.TabIndex = 24; + this.numericUpDown12.Value = new decimal(new int[] { + 192, + 0, + 0, + 0}); + // + // lblGateway + // + this.lblGateway.AutoSize = true; + this.lblGateway.Location = new System.Drawing.Point(14, 141); + this.lblGateway.Name = "lblGateway"; + this.lblGateway.Size = new System.Drawing.Size(49, 13); + this.lblGateway.TabIndex = 23; + this.lblGateway.Text = "Gateway"; + // + // numericUpDown5 + // + this.numericUpDown5.Location = new System.Drawing.Point(173, 115); + this.numericUpDown5.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.numericUpDown5.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.numericUpDown5.Name = "numericUpDown5"; + this.numericUpDown5.Size = new System.Drawing.Size(46, 20); + this.numericUpDown5.TabIndex = 22; + this.numericUpDown5.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // numericUpDown6 + // + this.numericUpDown6.Location = new System.Drawing.Point(121, 115); + this.numericUpDown6.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.numericUpDown6.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.numericUpDown6.Name = "numericUpDown6"; + this.numericUpDown6.Size = new System.Drawing.Size(46, 20); + this.numericUpDown6.TabIndex = 21; + this.numericUpDown6.Value = new decimal(new int[] { + 255, + 0, + 0, + 0}); + // + // numericUpDown7 + // + this.numericUpDown7.Location = new System.Drawing.Point(69, 115); + this.numericUpDown7.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.numericUpDown7.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.numericUpDown7.Name = "numericUpDown7"; + this.numericUpDown7.Size = new System.Drawing.Size(46, 20); + this.numericUpDown7.TabIndex = 20; + this.numericUpDown7.Value = new decimal(new int[] { + 255, + 0, + 0, + 0}); + // + // numericUpDown8 + // + this.numericUpDown8.Location = new System.Drawing.Point(17, 115); + this.numericUpDown8.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.numericUpDown8.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.numericUpDown8.Name = "numericUpDown8"; + this.numericUpDown8.Size = new System.Drawing.Size(46, 20); + this.numericUpDown8.TabIndex = 19; + this.numericUpDown8.Value = new decimal(new int[] { + 255, + 0, + 0, + 0}); + // + // lblNetmask + // + this.lblNetmask.AutoSize = true; + this.lblNetmask.Location = new System.Drawing.Point(14, 97); + this.lblNetmask.Name = "lblNetmask"; + this.lblNetmask.Size = new System.Drawing.Size(75, 13); + this.lblNetmask.TabIndex = 18; + this.lblNetmask.Text = "Network mask"; + // + // numericUpDown4 + // + this.numericUpDown4.Location = new System.Drawing.Point(173, 74); + this.numericUpDown4.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.numericUpDown4.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.numericUpDown4.Name = "numericUpDown4"; + this.numericUpDown4.Size = new System.Drawing.Size(46, 20); + this.numericUpDown4.TabIndex = 17; + this.numericUpDown4.Value = new decimal(new int[] { + 20, + 0, + 0, + 0}); + // + // numericUpDown3 + // + this.numericUpDown3.Location = new System.Drawing.Point(121, 74); + this.numericUpDown3.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.numericUpDown3.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.numericUpDown3.Name = "numericUpDown3"; + this.numericUpDown3.Size = new System.Drawing.Size(46, 20); + this.numericUpDown3.TabIndex = 16; + this.numericUpDown3.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // numericUpDown2 + // + this.numericUpDown2.Location = new System.Drawing.Point(69, 74); + this.numericUpDown2.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.numericUpDown2.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.numericUpDown2.Name = "numericUpDown2"; + this.numericUpDown2.Size = new System.Drawing.Size(46, 20); + this.numericUpDown2.TabIndex = 15; + this.numericUpDown2.Value = new decimal(new int[] { + 168, + 0, + 0, + 0}); + // + // numericUpDown1 + // + this.numericUpDown1.Location = new System.Drawing.Point(17, 74); + this.numericUpDown1.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.numericUpDown1.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.numericUpDown1.Name = "numericUpDown1"; + this.numericUpDown1.Size = new System.Drawing.Size(46, 20); + this.numericUpDown1.TabIndex = 14; + this.numericUpDown1.Value = new decimal(new int[] { + 192, + 0, + 0, + 0}); + // + // lblIP + // + this.lblIP.AutoSize = true; + this.lblIP.Location = new System.Drawing.Point(14, 58); + this.lblIP.Name = "lblIP"; + this.lblIP.Size = new System.Drawing.Size(58, 13); + this.lblIP.TabIndex = 2; + this.lblIP.Text = "IP Address"; + // + // optStaticIP + // + this.optStaticIP.AutoSize = true; + this.optStaticIP.Location = new System.Drawing.Point(121, 29); + this.optStaticIP.Name = "optStaticIP"; + this.optStaticIP.Size = new System.Drawing.Size(65, 17); + this.optStaticIP.TabIndex = 1; + this.optStaticIP.TabStop = true; + this.optStaticIP.Text = "Static IP"; + this.optStaticIP.UseVisualStyleBackColor = true; + // + // optDHCP + // + this.optDHCP.AutoSize = true; + this.optDHCP.Checked = true; + this.optDHCP.Location = new System.Drawing.Point(17, 29); + this.optDHCP.Name = "optDHCP"; + this.optDHCP.Size = new System.Drawing.Size(77, 17); + this.optDHCP.TabIndex = 0; + this.optDHCP.TabStop = true; + this.optDHCP.Text = "Use DHCP"; + this.optDHCP.UseVisualStyleBackColor = true; + // + // groupBox1 + // + this.groupBox1.Location = new System.Drawing.Point(3, 3); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(213, 195); + this.groupBox1.TabIndex = 0; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Buildin Server"; // // tabPaths // @@ -1484,354 +1833,6 @@ this.btnSave.TabIndex = 6; this.btnSave.Text = "Save"; this.btnSave.Click += new System.EventHandler(this.btnSave_Click); - // - // groupBox1 - // - this.groupBox1.Location = new System.Drawing.Point(13, 13); - this.groupBox1.Name = "groupBox1"; - this.groupBox1.Size = new System.Drawing.Size(200, 176); - this.groupBox1.TabIndex = 0; - this.groupBox1.TabStop = false; - this.groupBox1.Text = "Buildin Server"; - // - // groupBox3 - // - this.groupBox3.Controls.Add(this.numericUpDown9); - this.groupBox3.Controls.Add(this.numericUpDown10); - this.groupBox3.Controls.Add(this.numericUpDown11); - this.groupBox3.Controls.Add(this.numericUpDown12); - this.groupBox3.Controls.Add(this.label3); - this.groupBox3.Controls.Add(this.numericUpDown5); - this.groupBox3.Controls.Add(this.numericUpDown6); - this.groupBox3.Controls.Add(this.numericUpDown7); - this.groupBox3.Controls.Add(this.numericUpDown8); - this.groupBox3.Controls.Add(this.label2); - this.groupBox3.Controls.Add(this.numericUpDown4); - this.groupBox3.Controls.Add(this.numericUpDown3); - this.groupBox3.Controls.Add(this.numericUpDown2); - this.groupBox3.Controls.Add(this.numericUpDown1); - this.groupBox3.Controls.Add(this.label1); - this.groupBox3.Controls.Add(this.radioButton2); - this.groupBox3.Controls.Add(this.radioButton1); - this.groupBox3.Location = new System.Drawing.Point(231, 13); - this.groupBox3.Name = "groupBox3"; - this.groupBox3.Size = new System.Drawing.Size(214, 176); - this.groupBox3.TabIndex = 1; - this.groupBox3.TabStop = false; - this.groupBox3.Text = "Network Config"; - // - // radioButton1 - // - this.radioButton1.AutoSize = true; - this.radioButton1.Location = new System.Drawing.Point(6, 19); - this.radioButton1.Name = "radioButton1"; - this.radioButton1.Size = new System.Drawing.Size(77, 17); - this.radioButton1.TabIndex = 0; - this.radioButton1.TabStop = true; - this.radioButton1.Text = "Use DHCP"; - this.radioButton1.UseVisualStyleBackColor = true; - // - // radioButton2 - // - this.radioButton2.AutoSize = true; - this.radioButton2.Location = new System.Drawing.Point(101, 19); - this.radioButton2.Name = "radioButton2"; - this.radioButton2.Size = new System.Drawing.Size(65, 17); - this.radioButton2.TabIndex = 1; - this.radioButton2.TabStop = true; - this.radioButton2.Text = "Static IP"; - this.radioButton2.UseVisualStyleBackColor = true; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(6, 51); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(52, 13); - this.label1.TabIndex = 2; - this.label1.Text = "IP Adress"; - // - // numericUpDown1 - // - this.numericUpDown1.Location = new System.Drawing.Point(6, 67); - this.numericUpDown1.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.numericUpDown1.Minimum = new decimal(new int[] { - 1, - 0, - 0, - 0}); - this.numericUpDown1.Name = "numericUpDown1"; - this.numericUpDown1.Size = new System.Drawing.Size(46, 20); - this.numericUpDown1.TabIndex = 14; - this.numericUpDown1.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // numericUpDown2 - // - this.numericUpDown2.Location = new System.Drawing.Point(58, 67); - this.numericUpDown2.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.numericUpDown2.Minimum = new decimal(new int[] { - 1, - 0, - 0, - 0}); - this.numericUpDown2.Name = "numericUpDown2"; - this.numericUpDown2.Size = new System.Drawing.Size(46, 20); - this.numericUpDown2.TabIndex = 15; - this.numericUpDown2.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // numericUpDown3 - // - this.numericUpDown3.Location = new System.Drawing.Point(110, 67); - this.numericUpDown3.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.numericUpDown3.Minimum = new decimal(new int[] { - 1, - 0, - 0, - 0}); - this.numericUpDown3.Name = "numericUpDown3"; - this.numericUpDown3.Size = new System.Drawing.Size(46, 20); - this.numericUpDown3.TabIndex = 16; - this.numericUpDown3.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // numericUpDown4 - // - this.numericUpDown4.Location = new System.Drawing.Point(162, 67); - this.numericUpDown4.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.numericUpDown4.Minimum = new decimal(new int[] { - 1, - 0, - 0, - 0}); - this.numericUpDown4.Name = "numericUpDown4"; - this.numericUpDown4.Size = new System.Drawing.Size(46, 20); - this.numericUpDown4.TabIndex = 17; - this.numericUpDown4.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // numericUpDown5 - // - this.numericUpDown5.Location = new System.Drawing.Point(162, 108); - this.numericUpDown5.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.numericUpDown5.Minimum = new decimal(new int[] { - 1, - 0, - 0, - 0}); - this.numericUpDown5.Name = "numericUpDown5"; - this.numericUpDown5.Size = new System.Drawing.Size(46, 20); - this.numericUpDown5.TabIndex = 22; - this.numericUpDown5.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // numericUpDown6 - // - this.numericUpDown6.Location = new System.Drawing.Point(110, 108); - this.numericUpDown6.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.numericUpDown6.Minimum = new decimal(new int[] { - 1, - 0, - 0, - 0}); - this.numericUpDown6.Name = "numericUpDown6"; - this.numericUpDown6.Size = new System.Drawing.Size(46, 20); - this.numericUpDown6.TabIndex = 21; - this.numericUpDown6.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // numericUpDown7 - // - this.numericUpDown7.Location = new System.Drawing.Point(58, 108); - this.numericUpDown7.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.numericUpDown7.Minimum = new decimal(new int[] { - 1, - 0, - 0, - 0}); - this.numericUpDown7.Name = "numericUpDown7"; - this.numericUpDown7.Size = new System.Drawing.Size(46, 20); - this.numericUpDown7.TabIndex = 20; - this.numericUpDown7.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // numericUpDown8 - // - this.numericUpDown8.Location = new System.Drawing.Point(6, 108); - this.numericUpDown8.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.numericUpDown8.Minimum = new decimal(new int[] { - 1, - 0, - 0, - 0}); - this.numericUpDown8.Name = "numericUpDown8"; - this.numericUpDown8.Size = new System.Drawing.Size(46, 20); - this.numericUpDown8.TabIndex = 19; - this.numericUpDown8.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(6, 92); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(75, 13); - this.label2.TabIndex = 18; - this.label2.Text = "Network mask"; - // - // numericUpDown9 - // - this.numericUpDown9.Location = new System.Drawing.Point(162, 150); - this.numericUpDown9.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.numericUpDown9.Minimum = new decimal(new int[] { - 1, - 0, - 0, - 0}); - this.numericUpDown9.Name = "numericUpDown9"; - this.numericUpDown9.Size = new System.Drawing.Size(46, 20); - this.numericUpDown9.TabIndex = 27; - this.numericUpDown9.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // numericUpDown10 - // - this.numericUpDown10.Location = new System.Drawing.Point(110, 150); - this.numericUpDown10.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.numericUpDown10.Minimum = new decimal(new int[] { - 1, - 0, - 0, - 0}); - this.numericUpDown10.Name = "numericUpDown10"; - this.numericUpDown10.Size = new System.Drawing.Size(46, 20); - this.numericUpDown10.TabIndex = 26; - this.numericUpDown10.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // numericUpDown11 - // - this.numericUpDown11.Location = new System.Drawing.Point(58, 150); - this.numericUpDown11.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.numericUpDown11.Minimum = new decimal(new int[] { - 1, - 0, - 0, - 0}); - this.numericUpDown11.Name = "numericUpDown11"; - this.numericUpDown11.Size = new System.Drawing.Size(46, 20); - this.numericUpDown11.TabIndex = 25; - this.numericUpDown11.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // numericUpDown12 - // - this.numericUpDown12.Location = new System.Drawing.Point(6, 150); - this.numericUpDown12.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.numericUpDown12.Minimum = new decimal(new int[] { - 1, - 0, - 0, - 0}); - this.numericUpDown12.Name = "numericUpDown12"; - this.numericUpDown12.Size = new System.Drawing.Size(46, 20); - this.numericUpDown12.TabIndex = 24; - this.numericUpDown12.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // label3 - // - this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(6, 134); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(43, 13); - this.label3.TabIndex = 23; - this.label3.Text = "Getway"; // // frmMain // @@ -1888,25 +1889,25 @@ this.grpParallel.ResumeLayout(false); this.groupBox16.ResumeLayout(false); this.tabNetwork.ResumeLayout(false); + this.grpNetwork.ResumeLayout(false); + this.grpNetwork.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown9)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown10)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown11)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown12)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown7)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown8)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).EndInit(); this.tabPaths.ResumeLayout(false); this.groupBox2.ResumeLayout(false); this.groupBox2.PerformLayout(); this.tabAbout.ResumeLayout(false); this.tabAbout.PerformLayout(); - this.groupBox3.ResumeLayout(false); - this.groupBox3.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDown3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDown4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDown5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDown6)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDown7)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDown8)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDown9)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDown10)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDown11)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.numericUpDown12)).EndInit(); this.ResumeLayout(false); }
18 years, 4 months
1
0
0
0
[jimtabor] 22500: Wine port WM_SETREDRAW.
by jimtabor@svn.reactos.org
Author: jimtabor Date: Thu Jun 22 16:32:52 2006 New Revision: 22500 URL:
http://svn.reactos.ru/svn/reactos?rev=22500&view=rev
Log: Wine port WM_SETREDRAW. Modified: trunk/reactos/dll/win32/user32/windows/defwnd.c Modified: trunk/reactos/dll/win32/user32/windows/defwnd.c URL:
http://svn.reactos.ru/svn/reactos/trunk/reactos/dll/win32/user32/windows/de…
============================================================================== --- trunk/reactos/dll/win32/user32/windows/defwnd.c (original) +++ trunk/reactos/dll/win32/user32/windows/defwnd.c Thu Jun 22 16:32:52 2006 @@ -196,12 +196,25 @@ VOID DefWndSetRedraw(HWND hWnd, WPARAM wParam) { - if ((BOOL) wParam && 0 == (GetWindowLong(hWnd, GWL_STYLE) & WS_VISIBLE)) - { - ShowWindow(hWnd, SW_NORMAL); - } - - UNIMPLEMENTED; + LONG Style = GetWindowLong(hWnd, GWL_STYLE); + /* Content can be redrawn after a change. */ + if (wParam) + { + if (!(Style & WS_VISIBLE)) /* Not Visible */ + { + SetWindowLong(hWnd, GWL_STYLE, WS_VISIBLE); + } + } + else /* Content cannot be redrawn after a change. */ + { + if (Style & WS_VISIBLE) /* Visible */ + { + RedrawWindow( hWnd, NULL, 0, RDW_ALLCHILDREN | RDW_VALIDATE ); + Style &= ~WS_VISIBLE; + SetWindowLong(hWnd, GWL_STYLE, Style); /* clear bits */ + } + } + return; }
18 years, 4 months
1
0
0
0
[navaraf] 22499: Fix bug introduced in r21635.
by navaraf@svn.reactos.org
Author: navaraf Date: Thu Jun 22 16:14:41 2006 New Revision: 22499 URL:
http://svn.reactos.ru/svn/reactos?rev=22499&view=rev
Log: Fix bug introduced in r21635. Modified: trunk/reactos/base/applications/screensavers/matrix/config.c trunk/reactos/base/applications/screensavers/matrix/settings.c Modified: trunk/reactos/base/applications/screensavers/matrix/config.c URL:
http://svn.reactos.ru/svn/reactos/trunk/reactos/base/applications/screensav…
============================================================================== --- trunk/reactos/base/applications/screensavers/matrix/config.c (original) +++ trunk/reactos/base/applications/screensavers/matrix/config.c Thu Jun 22 16:14:41 2006 @@ -69,7 +69,7 @@ prevheight = GetSystemMetrics(SM_CYSCREEN) / GLYPH_HEIGHT + 1; //Add any saved messages to the combo box - for(index = 0; index <= g_nNumMessages; index++) + for(index = 0; index < g_nNumMessages; index++) { if(lstrlen(g_szMessages[index]) > 0) SendDlgItemMessage(hwnd, IDC_COMBO1, CB_ADDSTRING, 0, (LPARAM)g_szMessages[index]); Modified: trunk/reactos/base/applications/screensavers/matrix/settings.c URL:
http://svn.reactos.ru/svn/reactos/trunk/reactos/base/applications/screensav…
============================================================================== --- trunk/reactos/base/applications/screensavers/matrix/settings.c (original) +++ trunk/reactos/base/applications/screensavers/matrix/settings.c Thu Jun 22 16:14:41 2006 @@ -98,6 +98,7 @@ { /* built-in coded message for first run */ lstrcpyn(g_szMessages[0], _T("ReactOS"), MAXMSG_LENGTH); + ++g_nNumMessages; } RegCloseKey(hkey);
18 years, 4 months
1
0
0
0
[greatlrd] 22498: Adding design for the network config
by greatlrd@svn.reactos.org
Author: greatlrd Date: Thu Jun 22 16:00:58 2006 New Revision: 22498 URL:
http://svn.reactos.ru/svn/reactos?rev=22498&view=rev
Log: Adding design for the network config Modified: trunk/tools/Qemu GUI/frmMain.cs Modified: trunk/tools/Qemu GUI/frmMain.cs URL:
http://svn.reactos.ru/svn/reactos/trunk/tools/Qemu%20GUI/frmMain.cs?rev=224…
============================================================================== --- trunk/tools/Qemu GUI/frmMain.cs (original) +++ trunk/tools/Qemu GUI/frmMain.cs Thu Jun 22 16:00:58 2006 @@ -127,6 +127,25 @@ private ComboBox cboVDKDrive; private ComboBox cboMachine; private Label lblImageSizeMB; + private GroupBox groupBox3; + private GroupBox groupBox1; + private NumericUpDown numericUpDown9; + private NumericUpDown numericUpDown10; + private NumericUpDown numericUpDown11; + private NumericUpDown numericUpDown12; + private Label label3; + private NumericUpDown numericUpDown5; + private NumericUpDown numericUpDown6; + private NumericUpDown numericUpDown7; + private NumericUpDown numericUpDown8; + private Label label2; + private NumericUpDown numericUpDown4; + private NumericUpDown numericUpDown3; + private NumericUpDown numericUpDown2; + private NumericUpDown numericUpDown1; + private Label label1; + private RadioButton radioButton2; + private RadioButton radioButton1; private QEmu qemu; public frmMain() @@ -274,6 +293,25 @@ this.saveFileDialog1 = new System.Windows.Forms.SaveFileDialog(); this.btnLoad = new System.Windows.Forms.Button(); this.btnSave = new System.Windows.Forms.Button(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.groupBox3 = new System.Windows.Forms.GroupBox(); + this.radioButton1 = new System.Windows.Forms.RadioButton(); + this.radioButton2 = new System.Windows.Forms.RadioButton(); + this.label1 = new System.Windows.Forms.Label(); + this.numericUpDown1 = new System.Windows.Forms.NumericUpDown(); + this.numericUpDown2 = new System.Windows.Forms.NumericUpDown(); + this.numericUpDown3 = new System.Windows.Forms.NumericUpDown(); + this.numericUpDown4 = new System.Windows.Forms.NumericUpDown(); + this.numericUpDown5 = new System.Windows.Forms.NumericUpDown(); + this.numericUpDown6 = new System.Windows.Forms.NumericUpDown(); + this.numericUpDown7 = new System.Windows.Forms.NumericUpDown(); + this.numericUpDown8 = new System.Windows.Forms.NumericUpDown(); + this.label2 = new System.Windows.Forms.Label(); + this.numericUpDown9 = new System.Windows.Forms.NumericUpDown(); + this.numericUpDown10 = new System.Windows.Forms.NumericUpDown(); + this.numericUpDown11 = new System.Windows.Forms.NumericUpDown(); + this.numericUpDown12 = new System.Windows.Forms.NumericUpDown(); + this.label3 = new System.Windows.Forms.Label(); this.grpMachine.SuspendLayout(); this.HardDisk2.SuspendLayout(); this.tabMisc.SuspendLayout(); @@ -303,9 +341,23 @@ this.grpSerial.SuspendLayout(); this.grpParallel.SuspendLayout(); this.groupBox16.SuspendLayout(); + this.tabNetwork.SuspendLayout(); this.tabPaths.SuspendLayout(); this.groupBox2.SuspendLayout(); this.tabAbout.SuspendLayout(); + this.groupBox3.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown7)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown8)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown9)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown10)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown11)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown12)).BeginInit(); this.SuspendLayout(); // // grpMachine @@ -1294,6 +1346,8 @@ // // tabNetwork // + this.tabNetwork.Controls.Add(this.groupBox3); + this.tabNetwork.Controls.Add(this.groupBox1); this.tabNetwork.Location = new System.Drawing.Point(4, 22); this.tabNetwork.Name = "tabNetwork"; this.tabNetwork.Size = new System.Drawing.Size(460, 201); @@ -1430,6 +1484,354 @@ this.btnSave.TabIndex = 6; this.btnSave.Text = "Save"; this.btnSave.Click += new System.EventHandler(this.btnSave_Click); + // + // groupBox1 + // + this.groupBox1.Location = new System.Drawing.Point(13, 13); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(200, 176); + this.groupBox1.TabIndex = 0; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Buildin Server"; + // + // groupBox3 + // + this.groupBox3.Controls.Add(this.numericUpDown9); + this.groupBox3.Controls.Add(this.numericUpDown10); + this.groupBox3.Controls.Add(this.numericUpDown11); + this.groupBox3.Controls.Add(this.numericUpDown12); + this.groupBox3.Controls.Add(this.label3); + this.groupBox3.Controls.Add(this.numericUpDown5); + this.groupBox3.Controls.Add(this.numericUpDown6); + this.groupBox3.Controls.Add(this.numericUpDown7); + this.groupBox3.Controls.Add(this.numericUpDown8); + this.groupBox3.Controls.Add(this.label2); + this.groupBox3.Controls.Add(this.numericUpDown4); + this.groupBox3.Controls.Add(this.numericUpDown3); + this.groupBox3.Controls.Add(this.numericUpDown2); + this.groupBox3.Controls.Add(this.numericUpDown1); + this.groupBox3.Controls.Add(this.label1); + this.groupBox3.Controls.Add(this.radioButton2); + this.groupBox3.Controls.Add(this.radioButton1); + this.groupBox3.Location = new System.Drawing.Point(231, 13); + this.groupBox3.Name = "groupBox3"; + this.groupBox3.Size = new System.Drawing.Size(214, 176); + this.groupBox3.TabIndex = 1; + this.groupBox3.TabStop = false; + this.groupBox3.Text = "Network Config"; + // + // radioButton1 + // + this.radioButton1.AutoSize = true; + this.radioButton1.Location = new System.Drawing.Point(6, 19); + this.radioButton1.Name = "radioButton1"; + this.radioButton1.Size = new System.Drawing.Size(77, 17); + this.radioButton1.TabIndex = 0; + this.radioButton1.TabStop = true; + this.radioButton1.Text = "Use DHCP"; + this.radioButton1.UseVisualStyleBackColor = true; + // + // radioButton2 + // + this.radioButton2.AutoSize = true; + this.radioButton2.Location = new System.Drawing.Point(101, 19); + this.radioButton2.Name = "radioButton2"; + this.radioButton2.Size = new System.Drawing.Size(65, 17); + this.radioButton2.TabIndex = 1; + this.radioButton2.TabStop = true; + this.radioButton2.Text = "Static IP"; + this.radioButton2.UseVisualStyleBackColor = true; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(6, 51); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(52, 13); + this.label1.TabIndex = 2; + this.label1.Text = "IP Adress"; + // + // numericUpDown1 + // + this.numericUpDown1.Location = new System.Drawing.Point(6, 67); + this.numericUpDown1.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.numericUpDown1.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.numericUpDown1.Name = "numericUpDown1"; + this.numericUpDown1.Size = new System.Drawing.Size(46, 20); + this.numericUpDown1.TabIndex = 14; + this.numericUpDown1.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // numericUpDown2 + // + this.numericUpDown2.Location = new System.Drawing.Point(58, 67); + this.numericUpDown2.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.numericUpDown2.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.numericUpDown2.Name = "numericUpDown2"; + this.numericUpDown2.Size = new System.Drawing.Size(46, 20); + this.numericUpDown2.TabIndex = 15; + this.numericUpDown2.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // numericUpDown3 + // + this.numericUpDown3.Location = new System.Drawing.Point(110, 67); + this.numericUpDown3.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.numericUpDown3.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.numericUpDown3.Name = "numericUpDown3"; + this.numericUpDown3.Size = new System.Drawing.Size(46, 20); + this.numericUpDown3.TabIndex = 16; + this.numericUpDown3.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // numericUpDown4 + // + this.numericUpDown4.Location = new System.Drawing.Point(162, 67); + this.numericUpDown4.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.numericUpDown4.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.numericUpDown4.Name = "numericUpDown4"; + this.numericUpDown4.Size = new System.Drawing.Size(46, 20); + this.numericUpDown4.TabIndex = 17; + this.numericUpDown4.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // numericUpDown5 + // + this.numericUpDown5.Location = new System.Drawing.Point(162, 108); + this.numericUpDown5.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.numericUpDown5.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.numericUpDown5.Name = "numericUpDown5"; + this.numericUpDown5.Size = new System.Drawing.Size(46, 20); + this.numericUpDown5.TabIndex = 22; + this.numericUpDown5.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // numericUpDown6 + // + this.numericUpDown6.Location = new System.Drawing.Point(110, 108); + this.numericUpDown6.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.numericUpDown6.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.numericUpDown6.Name = "numericUpDown6"; + this.numericUpDown6.Size = new System.Drawing.Size(46, 20); + this.numericUpDown6.TabIndex = 21; + this.numericUpDown6.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // numericUpDown7 + // + this.numericUpDown7.Location = new System.Drawing.Point(58, 108); + this.numericUpDown7.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.numericUpDown7.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.numericUpDown7.Name = "numericUpDown7"; + this.numericUpDown7.Size = new System.Drawing.Size(46, 20); + this.numericUpDown7.TabIndex = 20; + this.numericUpDown7.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // numericUpDown8 + // + this.numericUpDown8.Location = new System.Drawing.Point(6, 108); + this.numericUpDown8.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.numericUpDown8.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.numericUpDown8.Name = "numericUpDown8"; + this.numericUpDown8.Size = new System.Drawing.Size(46, 20); + this.numericUpDown8.TabIndex = 19; + this.numericUpDown8.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(6, 92); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(75, 13); + this.label2.TabIndex = 18; + this.label2.Text = "Network mask"; + // + // numericUpDown9 + // + this.numericUpDown9.Location = new System.Drawing.Point(162, 150); + this.numericUpDown9.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.numericUpDown9.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.numericUpDown9.Name = "numericUpDown9"; + this.numericUpDown9.Size = new System.Drawing.Size(46, 20); + this.numericUpDown9.TabIndex = 27; + this.numericUpDown9.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // numericUpDown10 + // + this.numericUpDown10.Location = new System.Drawing.Point(110, 150); + this.numericUpDown10.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.numericUpDown10.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.numericUpDown10.Name = "numericUpDown10"; + this.numericUpDown10.Size = new System.Drawing.Size(46, 20); + this.numericUpDown10.TabIndex = 26; + this.numericUpDown10.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // numericUpDown11 + // + this.numericUpDown11.Location = new System.Drawing.Point(58, 150); + this.numericUpDown11.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.numericUpDown11.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.numericUpDown11.Name = "numericUpDown11"; + this.numericUpDown11.Size = new System.Drawing.Size(46, 20); + this.numericUpDown11.TabIndex = 25; + this.numericUpDown11.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // numericUpDown12 + // + this.numericUpDown12.Location = new System.Drawing.Point(6, 150); + this.numericUpDown12.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.numericUpDown12.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.numericUpDown12.Name = "numericUpDown12"; + this.numericUpDown12.Size = new System.Drawing.Size(46, 20); + this.numericUpDown12.TabIndex = 24; + this.numericUpDown12.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(6, 134); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(43, 13); + this.label3.TabIndex = 23; + this.label3.Text = "Getway"; // // frmMain // @@ -1485,11 +1887,26 @@ this.grpSerial.ResumeLayout(false); this.grpParallel.ResumeLayout(false); this.groupBox16.ResumeLayout(false); + this.tabNetwork.ResumeLayout(false); this.tabPaths.ResumeLayout(false); this.groupBox2.ResumeLayout(false); this.groupBox2.PerformLayout(); this.tabAbout.ResumeLayout(false); this.tabAbout.PerformLayout(); + this.groupBox3.ResumeLayout(false); + this.groupBox3.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown7)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown8)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown9)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown10)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown11)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown12)).EndInit(); this.ResumeLayout(false); }
18 years, 4 months
1
0
0
0
[janderwald] 22497: * fix idl build command * generate client/server headers/sources in intermediate directory
by janderwald@svn.reactos.org
Author: janderwald Date: Thu Jun 22 16:00:51 2006 New Revision: 22497 URL:
http://svn.reactos.ru/svn/reactos?rev=22497&view=rev
Log: * fix idl build command * generate client/server headers/sources in intermediate directory Modified: trunk/reactos/tools/rbuild/backend/msvc/vcprojmaker.cpp Modified: trunk/reactos/tools/rbuild/backend/msvc/vcprojmaker.cpp URL:
http://svn.reactos.ru/svn/reactos/trunk/reactos/tools/rbuild/backend/msvc/v…
============================================================================== --- trunk/reactos/tools/rbuild/backend/msvc/vcprojmaker.cpp (original) +++ trunk/reactos/tools/rbuild/backend/msvc/vcprojmaker.cpp Thu Jun 22 16:00:51 2006 @@ -516,8 +516,9 @@ fprintf ( OUT, "\t\t\t\t\t<Tool\r\n" ); if (source_file.find(".idl") != string::npos) { - fprintf ( OUT, "\t\t\t\t\t\tName=\"VCCustomBuildTool\"\r\n" ); - fprintf ( OUT, "\t\t\t\t\t\tOutputs=\"$(OutDir)\\$(InputName).obj\"/>\r\n" ); + fprintf ( OUT, "\t\t\t\t\t\tName=\"VCMIDLTool\"\r\n" ); + fprintf ( OUT, "\t\t\t\t\t\tHeaderFileName=\"$(InputName).h\"\r\n" ); + fprintf ( OUT, "\t\t\t\t\t\tOutputDirectory=\"$(IntDir)\"/>\r\n" ); } else if ((source_file.find(".asm") != string::npos || tolower(source_file.at(source_file.size() - 1)) == 's')) {
18 years, 4 months
1
0
0
0
[greatlrd] 22496: redesign the StartProces error handling so it does not freze the gui when it start a new process. this will slov vdk freze bug.
by greatlrd@svn.reactos.org
Author: greatlrd Date: Thu Jun 22 15:39:08 2006 New Revision: 22496 URL:
http://svn.reactos.ru/svn/reactos?rev=22496&view=rev
Log: redesign the StartProces error handling so it does not freze the gui when it start a new process. this will slov vdk freze bug. Modified: trunk/tools/Qemu GUI/QEmu.cs trunk/tools/Qemu GUI/bin/Release/Qemu GUI.exe Modified: trunk/tools/Qemu GUI/QEmu.cs URL:
http://svn.reactos.ru/svn/reactos/trunk/tools/Qemu%20GUI/QEmu.cs?rev=22496&…
============================================================================== --- trunk/tools/Qemu GUI/QEmu.cs (original) +++ trunk/tools/Qemu GUI/QEmu.cs Thu Jun 22 15:39:08 2006 @@ -59,12 +59,14 @@ p.StartInfo.RedirectStandardError = true; p.StartInfo.UseShellExecute = false; p.StartInfo.CreateNoWindow = true; + p.EnableRaisingEvents = true; + p.Exited += new EventHandler(mytask_output); try { p.Start(); - m_LastError = p.StandardError.ReadToEnd(); - if (m_LastError.Length > 0) - return false; + //m_LastError = p.StandardError.ReadToEnd(); + //if (m_LastError.Length > 0) + // return false; } catch { @@ -90,12 +92,14 @@ p.StartInfo.RedirectStandardOutput = true; p.StartInfo.UseShellExecute = false; p.StartInfo.CreateNoWindow = true; + p.EnableRaisingEvents = true; + p.Exited += new EventHandler(mytask_output); try { p.Start(); - m_LastError = p.StandardOutput.ReadToEnd(); - if (m_LastError.Length > 0) - return false; + //m_LastError = p.StandardOutput.ReadToEnd(); + //if (m_LastError.Length > 0) + // return false; } catch { @@ -114,12 +118,16 @@ p.StartInfo.RedirectStandardError = true; p.StartInfo.UseShellExecute = false; p.StartInfo.CreateNoWindow = true; + + p.EnableRaisingEvents = true; + p.Exited += new EventHandler(mytask_output); + try { p.Start(); - m_LastError = p.StandardError.ReadToEnd(); - if (m_LastError.Length > 0) - return false; + //m_LastError = p.StandardError.ReadToEnd(); + //if (m_LastError.Length > 0) + // return false; } catch { @@ -165,14 +173,18 @@ p.StartInfo.Arguments = GetArgv(); p.StartInfo.RedirectStandardError = true; p.StartInfo.UseShellExecute = false; - p.StartInfo.CreateNoWindow = true; - + p.StartInfo.CreateNoWindow = true; + + p.EnableRaisingEvents = true; + p.Exited += new EventHandler(mytask_output); + + try { p.Start(); - m_LastError = p.StandardError.ReadToEnd(); - if (m_LastError.Length > 0) - return false; + // m_LastError = p.StandardError.ReadLine(); + // if (m_LastError.Length > 0) + // return false; } catch { @@ -180,6 +192,12 @@ return false; } return true; + } + + private void mytask_output(object sender, EventArgs e) + { + Process ps = (Process)sender; + // add error handling here and do not freze the gui } [XmlElement("Misc")] @@ -253,6 +271,8 @@ } } + + public class Harddisks { Modified: trunk/tools/Qemu GUI/bin/Release/Qemu GUI.exe URL:
http://svn.reactos.ru/svn/reactos/trunk/tools/Qemu%20GUI/bin/Release/Qemu%2…
============================================================================== Binary files - no diff available.
18 years, 4 months
1
0
0
0
[ion] 22495: - Sorry... was suffering from post-REcon-where-the-frell-am-I disorder.
by ion@svn.reactos.org
Author: ion Date: Thu Jun 22 07:08:09 2006 New Revision: 22495 URL:
http://svn.reactos.ru/svn/reactos?rev=22495&view=rev
Log: - Sorry... was suffering from post-REcon-where-the-frell-am-I disorder. Modified: trunk/reactos/ntoskrnl/ntoskrnl.rbuild Modified: trunk/reactos/ntoskrnl/ntoskrnl.rbuild URL:
http://svn.reactos.ru/svn/reactos/trunk/reactos/ntoskrnl/ntoskrnl.rbuild?re…
============================================================================== --- trunk/reactos/ntoskrnl/ntoskrnl.rbuild (original) +++ trunk/reactos/ntoskrnl/ntoskrnl.rbuild Thu Jun 22 07:08:09 2006 @@ -272,9 +272,9 @@ <file>oblife.c</file> <file>obref.c</file> <file>sdcache.c</file> - <file>security.c</file> + <file>obsecure.c</file> <file>symlink.c</file> - <file>wait.c</file> + <file>obwait.c</file> </directory> <directory name="po"> <file>power.c</file>
18 years, 4 months
1
0
0
0
[ion] 22494: - Rename obwait/obsecure - Check for valid access in NtSignalAndWaitForSingleObject and don't check if ResultLength isn't NULL in NtQueryObject, because it's not optional. - Add Thomas's name to a file where it wasn't. - Reformatting (only code change is #2 above)
by ion@svn.reactos.org
Author: ion Date: Thu Jun 22 06:20:34 2006 New Revision: 22494 URL:
http://svn.reactos.ru/svn/reactos?rev=22494&view=rev
Log: - Rename obwait/obsecure - Check for valid access in NtSignalAndWaitForSingleObject and don't check if ResultLength isn't NULL in NtQueryObject, because it's not optional. - Add Thomas's name to a file where it wasn't. - Reformatting (only code change is #2 above) Added: trunk/reactos/ntoskrnl/ob/obsecure.c - copied, changed from r22345, trunk/reactos/ntoskrnl/ob/security.c trunk/reactos/ntoskrnl/ob/obwait.c - copied, changed from r22345, trunk/reactos/ntoskrnl/ob/wait.c Removed: trunk/reactos/ntoskrnl/ob/security.c trunk/reactos/ntoskrnl/ob/wait.c Copied: trunk/reactos/ntoskrnl/ob/obsecure.c (from r22345, trunk/reactos/ntoskrnl/ob/security.c) URL:
http://svn.reactos.ru/svn/reactos/trunk/reactos/ntoskrnl/ob/obsecure.c?p2=t…
============================================================================== --- trunk/reactos/ntoskrnl/ob/security.c (original) +++ trunk/reactos/ntoskrnl/ob/obsecure.c Thu Jun 22 06:20:34 2006 @@ -1,7 +1,7 @@ /* * PROJECT: ReactOS Kernel * LICENSE: GPL - See COPYING in the top level directory -* FILE: ntoskrnl/ob/security.c +* FILE: ntoskrnl/ob/obsecure.c * PURPOSE: SRM Interface of the Object Manager * PROGRAMMERS: Alex Ionescu (alex(a)relsoft.net) * Eric Kohl @@ -12,6 +12,8 @@ #include <ntoskrnl.h> #define NDEBUG #include <internal/debug.h> + +#define TAG_SEC_QUERY TAG('O', 'b', 'S', 'q') /* FUNCTIONS ***************************************************************/ @@ -144,7 +146,7 @@ /* Allocate security descriptor */ *SecurityDescriptor = ExAllocatePoolWithTag(PagedPool, Length, - TAG('O', 'b', 'S', 'q')); + TAG_SEC_QUERY); if (!(*SecurityDescriptor)) return STATUS_INSUFFICIENT_RESOURCES; /* Query security descriptor */ @@ -248,72 +250,75 @@ KPROCESSOR_MODE PreviousMode = ExGetPreviousMode(); PVOID Object; POBJECT_HEADER Header; - ACCESS_MASK DesiredAccess = (ACCESS_MASK)0; + POBJECT_TYPE Type; + ACCESS_MASK DesiredAccess; NTSTATUS Status = STATUS_SUCCESS; PAGED_CODE(); + /* Check if we came from user mode */ if (PreviousMode != KernelMode) { + /* Enter SEH */ _SEH_TRY { + /* Probe the SD and the length pointer */ ProbeForWrite(SecurityDescriptor, Length, sizeof(ULONG)); - if (ResultLength != NULL) - { ProbeForWriteUlong(ResultLength); - } } _SEH_HANDLE { + /* Get the exception code */ Status = _SEH_GetExceptionCode(); } _SEH_END; + /* Fail if we got an access violation */ if (!NT_SUCCESS(Status)) return Status; } - /* get the required access rights for the operation */ - SeQuerySecurityAccessMask(SecurityInformation, - &DesiredAccess); - + /* Get the required access rights for the operation */ + SeQuerySecurityAccessMask(SecurityInformation, &DesiredAccess); + + /* Reference the object */ Status = ObReferenceObjectByHandle(Handle, DesiredAccess, NULL, PreviousMode, &Object, NULL); - - if (NT_SUCCESS(Status)) - { - Header = OBJECT_TO_OBJECT_HEADER(Object); - ASSERT(Header->Type != NULL); - - Status = Header->Type->TypeInfo.SecurityProcedure( - Object, - QuerySecurityDescriptor, - SecurityInformation, - SecurityDescriptor, - &Length, - &Header->SecurityDescriptor, - Header->Type->TypeInfo.PoolType, - &Header->Type->TypeInfo.GenericMapping); - - ObDereferenceObject(Object); - - /* return the required length */ - if (ResultLength != NULL) - { - _SEH_TRY - { - *ResultLength = Length; - } - _SEH_EXCEPT(_SEH_ExSystemExceptionFilter) - { - Status = _SEH_GetExceptionCode(); - } - _SEH_END; - } - } - + if (!NT_SUCCESS(Status)) return Status; + + /* Get the Object Header and Type */ + Header = OBJECT_TO_OBJECT_HEADER(Object); + Type = Header->Type; + + /* Call the security procedure's query function */ + Status = Type->TypeInfo.SecurityProcedure(Object, + QuerySecurityDescriptor, + SecurityInformation, + SecurityDescriptor, + &Length, + &Header->SecurityDescriptor, + Type->TypeInfo.PoolType, + &Type->TypeInfo.GenericMapping); + + /* Dereference the object */ + ObDereferenceObject(Object); + + /* Protect write with SEH */ + _SEH_TRY + { + /* Return the needed length */ + *ResultLength = Length; + } + _SEH_EXCEPT(_SEH_ExSystemExceptionFilter) + { + /* Get the exception code */ + Status = _SEH_GetExceptionCode(); + } + _SEH_END; + + /* Return status */ return Status; } @@ -346,75 +351,140 @@ KPROCESSOR_MODE PreviousMode = ExGetPreviousMode(); PVOID Object; POBJECT_HEADER Header; - SECURITY_DESCRIPTOR_RELATIVE *CapturedSecurityDescriptor; - ACCESS_MASK DesiredAccess = (ACCESS_MASK)0; + POBJECT_TYPE Type; + SECURITY_DESCRIPTOR_RELATIVE *CapturedDescriptor; + ACCESS_MASK DesiredAccess; NTSTATUS Status; PAGED_CODE(); - /* make sure the caller doesn't pass a NULL security descriptor! */ - if (SecurityDescriptor == NULL) return STATUS_ACCESS_DENIED; - - /* capture and make a copy of the security descriptor */ + /* Make sure the caller doesn't pass a NULL security descriptor! */ + if (!SecurityDescriptor) return STATUS_ACCESS_VIOLATION; + + /* Capture and make a copy of the security descriptor */ Status = SeCaptureSecurityDescriptor(SecurityDescriptor, PreviousMode, PagedPool, TRUE, (PSECURITY_DESCRIPTOR*) - &CapturedSecurityDescriptor); - if (!NT_SUCCESS(Status)) - { - DPRINT1("Capturing the security descriptor failed! Status: 0x%lx\n", Status); - return Status; - } + &CapturedDescriptor); + if (!NT_SUCCESS(Status)) return Status; /* - * make sure the security descriptor passed by the caller + * Make sure the security descriptor passed by the caller * is valid for the operation we're about to perform */ if (((SecurityInformation & OWNER_SECURITY_INFORMATION) && - (CapturedSecurityDescriptor->Owner == 0)) || + !(CapturedDescriptor->Owner)) || ((SecurityInformation & GROUP_SECURITY_INFORMATION) && - (CapturedSecurityDescriptor->Group == 0))) - { + !(CapturedDescriptor->Group))) + { + /* Set the failure status */ Status = STATUS_INVALID_SECURITY_DESCR; } else { - /* get the required access rights for the operation */ - SeSetSecurityAccessMask(SecurityInformation, - &DesiredAccess); - + /* Set the required access rights for the operation */ + SeSetSecurityAccessMask(SecurityInformation, &DesiredAccess); + + /* Reference the object */ Status = ObReferenceObjectByHandle(Handle, DesiredAccess, NULL, PreviousMode, &Object, NULL); - if (NT_SUCCESS(Status)) { + /* Get the Object Header and Type */ Header = OBJECT_TO_OBJECT_HEADER(Object); - ASSERT(Header->Type != NULL); - - Status = Header->Type->TypeInfo.SecurityProcedure( - Object, - SetSecurityDescriptor, - SecurityInformation, - (PSECURITY_DESCRIPTOR)SecurityDescriptor, - NULL, - &Header->SecurityDescriptor, - Header->Type->TypeInfo.PoolType, - &Header->Type->TypeInfo.GenericMapping); - + Type = Header->Type; + + /* Call the security procedure's set function */ + Status = Type->TypeInfo.SecurityProcedure(Object, + SetSecurityDescriptor, + SecurityInformation, + SecurityDescriptor, + NULL, + &Header-> + SecurityDescriptor, + Type->TypeInfo.PoolType, + &Type-> + TypeInfo.GenericMapping); + + /* Now we can dereference the object */ ObDereferenceObject(Object); } } - /* release the descriptor */ - SeReleaseSecurityDescriptor((PSECURITY_DESCRIPTOR)CapturedSecurityDescriptor, + /* Release the descriptor and return status */ + SeReleaseSecurityDescriptor((PSECURITY_DESCRIPTOR)CapturedDescriptor, PreviousMode, TRUE); - + return Status; +} + +/*++ +* @name ObQueryObjectAuditingByHandle +* @implemented NT5 +* +* The ObDereferenceSecurityDescriptor routine <FILLMEIN> +* +* @param SecurityDescriptor +* <FILLMEIN> +* +* @param Count +* <FILLMEIN> +* +* @return STATUS_SUCCESS or appropriate error value. +* +* @remarks None. +* +*--*/ +NTSTATUS +NTAPI +ObQueryObjectAuditingByHandle(IN HANDLE Handle, + OUT PBOOLEAN GenerateOnClose) +{ + PHANDLE_TABLE_ENTRY HandleEntry; + PVOID HandleTable; + NTSTATUS Status = STATUS_SUCCESS; + PAGED_CODE(); + + /* Check if we're dealing with a kernel handle */ + if (ObIsKernelHandle(Handle, ExGetPreviousMode())) + { + /* Use the kernel table and convert the handle */ + HandleTable = ObpKernelHandleTable; + Handle = ObKernelHandleToHandle(Handle); + } + else + { + /* Use the process's handle table */ + HandleTable = PsGetCurrentProcess()->ObjectTable; + } + + /* Enter a critical region while we touch the handle table */ + KeEnterCriticalRegion(); + + /* Map the handle */ + HandleEntry = ExMapHandleToPointer(HandleTable, Handle); + if(HandleEntry) + { + /* Check if the flag is set */ + *GenerateOnClose = (HandleEntry->ObAttributes & + EX_HANDLE_ENTRY_AUDITONCLOSE) != 0; + + /* Unlock the entry */ + ExUnlockHandleTableEntry(HandleTable, HandleEntry); + } + else + { + /* Otherwise, fail */ + Status = STATUS_INVALID_HANDLE; + } + + /* Leave the critical region and return the status */ + KeLeaveCriticalRegion(); return Status; } @@ -480,69 +550,4 @@ DPRINT1("ObDereferenceSecurityDescriptor is not implemented!\n"); } -/*++ -* @name ObQueryObjectAuditingByHandle -* @implemented NT5 -* -* The ObDereferenceSecurityDescriptor routine <FILLMEIN> -* -* @param SecurityDescriptor -* <FILLMEIN> -* -* @param Count -* <FILLMEIN> -* -* @return STATUS_SUCCESS or appropriate error value. -* -* @remarks None. -* -*--*/ -NTSTATUS -NTAPI -ObQueryObjectAuditingByHandle(IN HANDLE Handle, - OUT PBOOLEAN GenerateOnClose) -{ - PHANDLE_TABLE_ENTRY HandleEntry; - PVOID HandleTable; - NTSTATUS Status = STATUS_SUCCESS; - PAGED_CODE(); - - /* Check if we're dealing with a kernel handle */ - if (ObIsKernelHandle(Handle, ExGetPreviousMode())) - { - /* Use the kernel table and convert the handle */ - HandleTable = ObpKernelHandleTable; - Handle = ObKernelHandleToHandle(Handle); - } - else - { - /* Use the process's handle table */ - HandleTable = PsGetCurrentProcess()->ObjectTable; - } - - /* Enter a critical region while we touch the handle table */ - KeEnterCriticalRegion(); - - /* Map the handle */ - HandleEntry = ExMapHandleToPointer(HandleTable, Handle); - if(HandleEntry) - { - /* Check if the flag is set */ - *GenerateOnClose = (HandleEntry->ObAttributes & - EX_HANDLE_ENTRY_AUDITONCLOSE) != 0; - - /* Unlock the entry */ - ExUnlockHandleTableEntry(HandleTable, HandleEntry); - } - else - { - /* Otherwise, fail */ - Status = STATUS_INVALID_HANDLE; - } - - /* Leave the critical region and return the status */ - KeLeaveCriticalRegion(); - return Status; -} - /* EOF */ Copied: trunk/reactos/ntoskrnl/ob/obwait.c (from r22345, trunk/reactos/ntoskrnl/ob/wait.c) URL:
http://svn.reactos.ru/svn/reactos/trunk/reactos/ntoskrnl/ob/obwait.c?p2=tru…
============================================================================== --- trunk/reactos/ntoskrnl/ob/wait.c (original) +++ trunk/reactos/ntoskrnl/ob/obwait.c Thu Jun 22 06:20:34 2006 @@ -1,10 +1,10 @@ /* * PROJECT: ReactOS Kernel * LICENSE: GPL - See COPYING in the top level directory - * FILE: ntoskrnl/ob/wait.c + * FILE: ntoskrnl/ob/obwait.c * PURPOSE: Handles Waiting on Objects * PROGRAMMERS: Alex Ionescu (alex(a)relsoft.net) - * David Welch (welch(a)mcmail.com) + * Thomas Weidenmueller (w3seek(a)reactos.org) */ /* INCLUDES ******************************************************************/ @@ -65,7 +65,6 @@ ACCESS_MASK GrantedAccess; PVOID DefaultObject; NTSTATUS Status = STATUS_SUCCESS; - DPRINT("NtWaitForMultipleObjects(ObjectCount %lu HandleArray[] %x," " Alertable %d, TimeOut %x)\n", ObjectCount, HandleArray, Alertable, TimeOut); @@ -78,7 +77,6 @@ if ((ObjectCount > MAXIMUM_WAIT_OBJECTS) || !ObjectCount) { Status = STATUS_INVALID_PARAMETER_1; - DPRINT1("No object count, or too many objects\n"); goto Quickie; } @@ -86,20 +84,20 @@ if ((WaitType != WaitAll) && (WaitType != WaitAny)) { Status = STATUS_INVALID_PARAMETER_3; - DPRINT1("Invalid wait type\n"); goto Quickie; } - /* Capture arguments */ + /* Enter SEH */ _SEH_TRY { + /* Check if the call came from user mode */ if(PreviousMode != KernelMode) { + /* Probe all the handles */ ProbeForRead(HandleArray, ObjectCount * sizeof(HANDLE), sizeof(HANDLE)); - - if(TimeOut) + if (TimeOut) { /* Make a local copy of the timeout on the stack */ SafeTimeOut = ProbeForReadLargeInteger(TimeOut); @@ -118,18 +116,21 @@ } _SEH_HANDLE { + /* Get exception code */ Status = _SEH_GetExceptionCode(); } _SEH_END; - if(!NT_SUCCESS(Status)) goto Quickie; + /* Fail if we raised an exception */ + if (!NT_SUCCESS(Status)) goto Quickie; /* Check if we can use the internal Wait Array */ if (ObjectCount > THREAD_WAIT_OBJECTS) { /* Allocate from Pool */ WaitBlockArray = ExAllocatePoolWithTag(NonPagedPool, - ObjectCount * sizeof(KWAIT_BLOCK), + ObjectCount * + sizeof(KWAIT_BLOCK), TAG_WAIT); } @@ -137,7 +138,7 @@ do { /* Use the right Executive Handle */ - if(ObIsKernelHandle(Handles[i], PreviousMode)) + if (ObIsKernelHandle(Handles[i], PreviousMode)) { /* Use the System Handle Table and decode */ HandleTable = ObpKernelHandleTable; @@ -164,7 +165,6 @@ /* Unlock the entry and fail */ ExUnlockHandleTableEntry(HandleTable, HandleEntry); Status = STATUS_ACCESS_DENIED; - DPRINT1("Handle doesn't have SYNCH access\n"); goto Quickie; } @@ -218,7 +218,6 @@ { /* Fail */ Status = STATUS_INVALID_PARAMETER_MIX; - DPRINT1("Objects duplicated with WaitAll\n"); goto Quickie; } } @@ -247,6 +246,7 @@ } _SEH_HANDLE { + /* Get the exception code */ Status = _SEH_GetExceptionCode(); } _SEH_END; @@ -255,9 +255,13 @@ /* First derefence */ while (ReferencedObjects) { + /* Decrease the number of objects */ ReferencedObjects--; + + /* Check if we had a valid object in this position */ if (Objects[ReferencedObjects]) { + /* Dereference it */ ObDereferenceObject(Objects[ReferencedObjects]); } } @@ -269,7 +273,6 @@ if (LockInUse) KeLeaveCriticalRegion(); /* Return status */ - DPRINT("Returning: %x\n", Status); return Status; } @@ -303,12 +306,11 @@ KPROCESSOR_MODE PreviousMode = ExGetPreviousMode(); LARGE_INTEGER SafeTimeOut; NTSTATUS Status = STATUS_SUCCESS; - DPRINT("NtWaitForSingleObject(ObjectHandle %x, Alertable %d, TimeOut %x)\n", ObjectHandle,Alertable,TimeOut); - /* Capture timeout */ - if(TimeOut && PreviousMode != KernelMode) + /* Check if we came with a timeout from user mode */ + if (TimeOut && PreviousMode != KernelMode) { _SEH_TRY { @@ -318,11 +320,13 @@ } _SEH_HANDLE { + /* Get the exception code */ Status = _SEH_GetExceptionCode(); } _SEH_END; - if(!NT_SUCCESS(Status)) return Status; + /* Fail if we got an access violation */ + if (!NT_SUCCESS(Status)) return Status; } /* Get the Object */ @@ -345,9 +349,10 @@ (ULONG_PTR)WaitableObject); } - /* Now wait. Also SEH this since it can also raise an exception */ + /* SEH this since it can also raise an exception */ _SEH_TRY { + /* Ask the kernel to do the wait */ Status = KeWaitForSingleObject(WaitableObject, UserRequest, PreviousMode, @@ -356,6 +361,7 @@ } _SEH_HANDLE { + /* Get the exception code */ Status = _SEH_GetExceptionCode(); } _SEH_END; @@ -407,9 +413,8 @@ OBJECT_HANDLE_INFORMATION HandleInfo; NTSTATUS Status = STATUS_SUCCESS; - /* Capture timeout */ - DPRINT("NtSignalAndWaitForSingleObject\n"); - if(TimeOut && PreviousMode != KernelMode) + /* Check if we came with a timeout from user mode */ + if (TimeOut && PreviousMode != KernelMode) { _SEH_TRY { @@ -419,11 +424,13 @@ } _SEH_HANDLE { + /* Get the exception code */ Status = _SEH_GetExceptionCode(); } _SEH_END; - if(!NT_SUCCESS(Status)) return Status; + /* Fail if we got an access violation */ + if (!NT_SUCCESS(Status)) return Status; } /* Start by getting the signal object*/ @@ -433,10 +440,7 @@ PreviousMode, &SignalObj, &HandleInfo); - if (!NT_SUCCESS(Status)) - { - return Status; - } + if (!NT_SUCCESS(Status)) return Status; /* Now get the wait object */ Status = ObReferenceObjectByHandle(WaitableObjectHandle, @@ -447,6 +451,7 @@ NULL); if (!NT_SUCCESS(Status)) { + /* Failed to reference the wait object */ ObDereferenceObject(SignalObj); return Status; } @@ -461,67 +466,88 @@ WaitableObject = (PVOID)((ULONG_PTR)WaitObj + (ULONG_PTR)WaitableObject); } - + /* Check Signal Object Type */ Type = OBJECT_TO_OBJECT_HEADER(WaitObj)->Type; if (Type == ExEventObjectType) { + /* Check if we came from user-mode without the right access */ + if ((PreviousMode != KernelMode) && + !(HandleInfo.GrantedAccess & EVENT_MODIFY_STATE)) + { + /* Fail: lack of rights */ + goto Quickie; + } + /* Set the Event */ - /* FIXME: Check permissions */ KeSetEvent(SignalObj, EVENT_INCREMENT, TRUE); } else if (Type == ExMutantObjectType) { - /* Release the Mutant. This can raise an exception*/ + /* This can raise an exception */ _SEH_TRY { + /* Release the mutant */ KeReleaseMutant(SignalObj, MUTANT_INCREMENT, FALSE, TRUE); } _SEH_HANDLE { + /* Get the exception code */ Status = _SEH_GetExceptionCode(); + } + _SEH_END; + } + else if (Type == ExSemaphoreObjectType) + { + /* Check if we came from user-mode without the right access */ + if ((PreviousMode != KernelMode) && + !(HandleInfo.GrantedAccess & SEMAPHORE_MODIFY_STATE)) + { + /* Fail: lack of rights */ goto Quickie; } + + /* This can raise an exception*/ + _SEH_TRY + { + /* Release the semaphore */ + KeReleaseSemaphore(SignalObj, SEMAPHORE_INCREMENT, 1, TRUE); + } + _SEH_HANDLE + { + /* Get the exception code */ + Status = _SEH_GetExceptionCode(); + } _SEH_END; } - else if (Type == ExSemaphoreObjectType) - { - /* Release the Semaphore. This can raise an exception*/ - /* FIXME: Check permissions */ + else + { + /* This isn't a valid object to be waiting on */ + Status = STATUS_OBJECT_TYPE_MISMATCH; + } + + /* Make sure we didn't fail */ + if (NT_SUCCESS(Status)) + { + /* SEH this since it can also raise an exception */ _SEH_TRY { - KeReleaseSemaphore(SignalObj, SEMAPHORE_INCREMENT, 1, TRUE); + /* Perform the wait now */ + Status = KeWaitForSingleObject(WaitableObject, + UserRequest, + PreviousMode, + Alertable, + TimeOut); } _SEH_HANDLE { + /* Get the exception code */ Status = _SEH_GetExceptionCode(); - goto Quickie; } _SEH_END; } - else - { - Status = STATUS_OBJECT_TYPE_MISMATCH; - DPRINT1("Waiting on invalid object type\n"); - goto Quickie; - } - - /* Now wait. Also SEH this since it can also raise an exception */ - _SEH_TRY - { - Status = KeWaitForSingleObject(WaitableObject, - UserRequest, - PreviousMode, - Alertable, - TimeOut); - } - _SEH_HANDLE - { - Status = _SEH_GetExceptionCode(); - } - _SEH_END; - - /* We're done here */ + + /* We're done here, dereference both objects */ Quickie: ObDereferenceObject(SignalObj); ObDereferenceObject(WaitObj); Removed: trunk/reactos/ntoskrnl/ob/security.c URL:
http://svn.reactos.ru/svn/reactos/trunk/reactos/ntoskrnl/ob/security.c?rev=…
============================================================================== --- trunk/reactos/ntoskrnl/ob/security.c (original) +++ trunk/reactos/ntoskrnl/ob/security.c (removed) @@ -1,548 +1,0 @@ -/* -* PROJECT: ReactOS Kernel -* LICENSE: GPL - See COPYING in the top level directory -* FILE: ntoskrnl/ob/security.c -* PURPOSE: SRM Interface of the Object Manager -* PROGRAMMERS: Alex Ionescu (alex(a)relsoft.net) -* Eric Kohl -*/ - -/* INCLUDES *****************************************************************/ - -#include <ntoskrnl.h> -#define NDEBUG -#include <internal/debug.h> - -/* FUNCTIONS ***************************************************************/ - -/*++ -* @name ObAssignSecurity -* @implemented NT4 -* -* The ObAssignSecurity routine <FILLMEIN> -* -* @param AccessState -* <FILLMEIN> -* -* @param SecurityDescriptor -* <FILLMEIN> -* -* @param Object -* <FILLMEIN> -* -* @param Type -* <FILLMEIN> -* -* @return STATUS_SUCCESS or appropriate error value. -* -* @remarks None. -* -*--*/ -NTSTATUS -NTAPI -ObAssignSecurity(IN PACCESS_STATE AccessState, - IN PSECURITY_DESCRIPTOR SecurityDescriptor, - IN PVOID Object, - IN POBJECT_TYPE Type) -{ - PSECURITY_DESCRIPTOR NewDescriptor; - NTSTATUS Status; - PAGED_CODE(); - - /* Build the new security descriptor */ - Status = SeAssignSecurity(SecurityDescriptor, - AccessState->SecurityDescriptor, - &NewDescriptor, - (Type == ObDirectoryType), - &AccessState->SubjectSecurityContext, - &Type->TypeInfo.GenericMapping, - PagedPool); - if (!NT_SUCCESS(Status)) return Status; - - /* Call the security method */ - Status = Type->TypeInfo.SecurityProcedure(Object, - AssignSecurityDescriptor, - 0, - NewDescriptor, - NULL, - NULL, - PagedPool, - &Type->TypeInfo.GenericMapping); - if (!NT_SUCCESS(Status)) - { - /* Release the new security descriptor */ - SeDeassignSecurity(&NewDescriptor); - } - - /* Return to caller */ - return Status; -} - -/*++ -* @name ObGetObjectSecurity -* @implemented NT4 -* -* The ObGetObjectSecurity routine <FILLMEIN> -* -* @param Object -* <FILLMEIN> -* -* @param SecurityDescriptor -* <FILLMEIN> -* -* @param MemoryAllocated -* <FILLMEIN> -* -* @return STATUS_SUCCESS or appropriate error value. -* -* @remarks None. -* -*--*/ -NTSTATUS -NTAPI -ObGetObjectSecurity(IN PVOID Object, - OUT PSECURITY_DESCRIPTOR *SecurityDescriptor, - OUT PBOOLEAN MemoryAllocated) -{ - POBJECT_HEADER Header; - POBJECT_TYPE Type; - ULONG Length; - NTSTATUS Status; - PAGED_CODE(); - - /* Get the object header and type */ - Header = OBJECT_TO_OBJECT_HEADER(Object); - Type = Header->Type; - - /* Check if the object uses default security */ - if (Type->TypeInfo.SecurityProcedure == SeDefaultObjectMethod) - { - /* Reference the descriptor */ - *SecurityDescriptor = - ObpReferenceCachedSecurityDescriptor(Header->SecurityDescriptor); - - /* Tell the caller that we didn't have to allocate anything */ - *MemoryAllocated = FALSE; - return STATUS_SUCCESS; - } - - /* Get the security descriptor size */ - Length = 0; - Status = Type->TypeInfo.SecurityProcedure(Object, - QuerySecurityDescriptor, - OWNER_SECURITY_INFORMATION | - GROUP_SECURITY_INFORMATION | - DACL_SECURITY_INFORMATION | - SACL_SECURITY_INFORMATION, - *SecurityDescriptor, - &Length, - &Header->SecurityDescriptor, - Type->TypeInfo.PoolType, - &Type->TypeInfo.GenericMapping); - if (Status != STATUS_BUFFER_TOO_SMALL) return Status; - - /* Allocate security descriptor */ - *SecurityDescriptor = ExAllocatePoolWithTag(PagedPool, - Length, - TAG('O', 'b', 'S', 'q')); - if (!(*SecurityDescriptor)) return STATUS_INSUFFICIENT_RESOURCES; - - /* Query security descriptor */ - *MemoryAllocated = TRUE; - Status = Type->TypeInfo.SecurityProcedure(Object, - QuerySecurityDescriptor, - OWNER_SECURITY_INFORMATION | - GROUP_SECURITY_INFORMATION | - DACL_SECURITY_INFORMATION | - SACL_SECURITY_INFORMATION, - *SecurityDescriptor, - &Length, - &Header->SecurityDescriptor, - Type->TypeInfo.PoolType, - &Type->TypeInfo.GenericMapping); - if (!NT_SUCCESS(Status)) - { - /* Free the descriptor and tell the caller we failed */ - ExFreePool(*SecurityDescriptor); - *MemoryAllocated = FALSE; - } - - /* Return status */ - return Status; -} - -/*++ -* @name ObReleaseObjectSecurity -* @implemented NT4 -* -* The ObReleaseObjectSecurity routine <FILLMEIN> -* -* @param SecurityDescriptor -* <FILLMEIN> -* -* @param MemoryAllocated -* <FILLMEIN> -* -* @return STATUS_SUCCESS or appropriate error value. -* -* @remarks None. -* -*--*/ -VOID -NTAPI -ObReleaseObjectSecurity(IN PSECURITY_DESCRIPTOR SecurityDescriptor, - IN BOOLEAN MemoryAllocated) -{ - PAGED_CODE(); - - /* Nothing to do in this case */ - if (!SecurityDescriptor) return; - - /* Check if we had allocated it from memory */ - if (MemoryAllocated) - { - /* Free it */ - ExFreePool(SecurityDescriptor); - } - else - { - /* Otherwise this means we used an internal descriptor */ - ObpDereferenceCachedSecurityDescriptor(SecurityDescriptor); - } -} - -/*++ -* @name NtQuerySecurityObject -* @implemented NT4 -* -* The NtQuerySecurityObject routine <FILLMEIN> -* -* @param Handle -* <FILLMEIN> -* -* @param SecurityInformation -* <FILLMEIN> -* -* @param SecurityDescriptor -* <FILLMEIN> -* -* @param Length -* <FILLMEIN> -* -* @param ResultLength -* <FILLMEIN> -* -* @return STATUS_SUCCESS or appropriate error value. -* -* @remarks None. -* -*--*/ -NTSTATUS -NTAPI -NtQuerySecurityObject(IN HANDLE Handle, - IN SECURITY_INFORMATION SecurityInformation, - OUT PSECURITY_DESCRIPTOR SecurityDescriptor, - IN ULONG Length, - OUT PULONG ResultLength) -{ - KPROCESSOR_MODE PreviousMode = ExGetPreviousMode(); - PVOID Object; - POBJECT_HEADER Header; - ACCESS_MASK DesiredAccess = (ACCESS_MASK)0; - NTSTATUS Status = STATUS_SUCCESS; - PAGED_CODE(); - - if (PreviousMode != KernelMode) - { - _SEH_TRY - { - ProbeForWrite(SecurityDescriptor, Length, sizeof(ULONG)); - if (ResultLength != NULL) - { - ProbeForWriteUlong(ResultLength); - } - } - _SEH_HANDLE - { - Status = _SEH_GetExceptionCode(); - } - _SEH_END; - - if (!NT_SUCCESS(Status)) return Status; - } - - /* get the required access rights for the operation */ - SeQuerySecurityAccessMask(SecurityInformation, - &DesiredAccess); - - Status = ObReferenceObjectByHandle(Handle, - DesiredAccess, - NULL, - PreviousMode, - &Object, - NULL); - - if (NT_SUCCESS(Status)) - { - Header = OBJECT_TO_OBJECT_HEADER(Object); - ASSERT(Header->Type != NULL); - - Status = Header->Type->TypeInfo.SecurityProcedure( - Object, - QuerySecurityDescriptor, - SecurityInformation, - SecurityDescriptor, - &Length, - &Header->SecurityDescriptor, - Header->Type->TypeInfo.PoolType, - &Header->Type->TypeInfo.GenericMapping); - - ObDereferenceObject(Object); - - /* return the required length */ - if (ResultLength != NULL) - { - _SEH_TRY - { - *ResultLength = Length; - } - _SEH_EXCEPT(_SEH_ExSystemExceptionFilter) - { - Status = _SEH_GetExceptionCode(); - } - _SEH_END; - } - } - - return Status; -} - -/*++ -* @name NtSetSecurityObject -* @implemented NT4 -* -* The NtSetSecurityObject routine <FILLMEIN> -* -* @param Handle -* <FILLMEIN> -* -* @param SecurityInformation -* <FILLMEIN> -* -* @param SecurityDescriptor -* <FILLMEIN> -* -* @return STATUS_SUCCESS or appropriate error value. -* -* @remarks None. -* -*--*/ -NTSTATUS -NTAPI -NtSetSecurityObject(IN HANDLE Handle, - IN SECURITY_INFORMATION SecurityInformation, - IN PSECURITY_DESCRIPTOR SecurityDescriptor) -{ - KPROCESSOR_MODE PreviousMode = ExGetPreviousMode(); - PVOID Object; - POBJECT_HEADER Header; - SECURITY_DESCRIPTOR_RELATIVE *CapturedSecurityDescriptor; - ACCESS_MASK DesiredAccess = (ACCESS_MASK)0; - NTSTATUS Status; - PAGED_CODE(); - - /* make sure the caller doesn't pass a NULL security descriptor! */ - if (SecurityDescriptor == NULL) return STATUS_ACCESS_DENIED; - - /* capture and make a copy of the security descriptor */ - Status = SeCaptureSecurityDescriptor(SecurityDescriptor, - PreviousMode, - PagedPool, - TRUE, - (PSECURITY_DESCRIPTOR*) - &CapturedSecurityDescriptor); - if (!NT_SUCCESS(Status)) - { - DPRINT1("Capturing the security descriptor failed! Status: 0x%lx\n", Status); - return Status; - } - - /* - * make sure the security descriptor passed by the caller - * is valid for the operation we're about to perform - */ - if (((SecurityInformation & OWNER_SECURITY_INFORMATION) && - (CapturedSecurityDescriptor->Owner == 0)) || - ((SecurityInformation & GROUP_SECURITY_INFORMATION) && - (CapturedSecurityDescriptor->Group == 0))) - { - Status = STATUS_INVALID_SECURITY_DESCR; - } - else - { - /* get the required access rights for the operation */ - SeSetSecurityAccessMask(SecurityInformation, - &DesiredAccess); - - Status = ObReferenceObjectByHandle(Handle, - DesiredAccess, - NULL, - PreviousMode, - &Object, - NULL); - - if (NT_SUCCESS(Status)) - { - Header = OBJECT_TO_OBJECT_HEADER(Object); - ASSERT(Header->Type != NULL); - - Status = Header->Type->TypeInfo.SecurityProcedure( - Object, - SetSecurityDescriptor, - SecurityInformation, - (PSECURITY_DESCRIPTOR)SecurityDescriptor, - NULL, - &Header->SecurityDescriptor, - Header->Type->TypeInfo.PoolType, - &Header->Type->TypeInfo.GenericMapping); - - ObDereferenceObject(Object); - } - } - - /* release the descriptor */ - SeReleaseSecurityDescriptor((PSECURITY_DESCRIPTOR)CapturedSecurityDescriptor, - PreviousMode, - TRUE); - - return Status; -} - -/*++ -* @name ObLogSecurityDescriptor -* @unimplemented NT5.2 -* -* The ObLogSecurityDescriptor routine <FILLMEIN> -* -* @param InputSecurityDescriptor -* <FILLMEIN> -* -* @param OutputSecurityDescriptor -* <FILLMEIN> -* -* @param RefBias -* <FILLMEIN> -* -* @return STATUS_SUCCESS or appropriate error value. -* -* @remarks None. -* -*--*/ -NTSTATUS -NTAPI -ObLogSecurityDescriptor(IN PSECURITY_DESCRIPTOR InputSecurityDescriptor, - OUT PSECURITY_DESCRIPTOR *OutputSecurityDescriptor, - IN ULONG RefBias) -{ - /* HACK: Return the same descriptor back */ - PISECURITY_DESCRIPTOR SdCopy; - DPRINT1("ObLogSecurityDescriptor is not implemented!\n", - InputSecurityDescriptor); - - SdCopy = ExAllocatePool(PagedPool, sizeof(*SdCopy)); - RtlMoveMemory(SdCopy, InputSecurityDescriptor, sizeof(*SdCopy)); - *OutputSecurityDescriptor = SdCopy; - return STATUS_SUCCESS; -} - -/*++ -* @name ObDereferenceSecurityDescriptor -* @unimplemented NT5.2 -* -* The ObDereferenceSecurityDescriptor routine <FILLMEIN> -* -* @param SecurityDescriptor -* <FILLMEIN> -* -* @param Count -* <FILLMEIN> -* -* @return STATUS_SUCCESS or appropriate error value. -* -* @remarks None. -* -*--*/ -VOID -NTAPI -ObDereferenceSecurityDescriptor(IN PSECURITY_DESCRIPTOR SecurityDescriptor, - IN ULONG Count) -{ - DPRINT1("ObDereferenceSecurityDescriptor is not implemented!\n"); -} - -/*++ -* @name ObQueryObjectAuditingByHandle -* @implemented NT5 -* -* The ObDereferenceSecurityDescriptor routine <FILLMEIN> -* -* @param SecurityDescriptor -* <FILLMEIN> -* -* @param Count -* <FILLMEIN> -* -* @return STATUS_SUCCESS or appropriate error value. -* -* @remarks None. -* -*--*/ -NTSTATUS -NTAPI -ObQueryObjectAuditingByHandle(IN HANDLE Handle, - OUT PBOOLEAN GenerateOnClose) -{ - PHANDLE_TABLE_ENTRY HandleEntry; - PVOID HandleTable; - NTSTATUS Status = STATUS_SUCCESS; - PAGED_CODE(); - - /* Check if we're dealing with a kernel handle */ - if (ObIsKernelHandle(Handle, ExGetPreviousMode())) - { - /* Use the kernel table and convert the handle */ - HandleTable = ObpKernelHandleTable; - Handle = ObKernelHandleToHandle(Handle); - } - else - { - /* Use the process's handle table */ - HandleTable = PsGetCurrentProcess()->ObjectTable; - } - - /* Enter a critical region while we touch the handle table */ - KeEnterCriticalRegion(); - - /* Map the handle */ - HandleEntry = ExMapHandleToPointer(HandleTable, Handle); - if(HandleEntry) - { - /* Check if the flag is set */ - *GenerateOnClose = (HandleEntry->ObAttributes & - EX_HANDLE_ENTRY_AUDITONCLOSE) != 0; - - /* Unlock the entry */ - ExUnlockHandleTableEntry(HandleTable, HandleEntry); - } - else - { - /* Otherwise, fail */ - Status = STATUS_INVALID_HANDLE; - } - - /* Leave the critical region and return the status */ - KeLeaveCriticalRegion(); - return Status; -} - -/* EOF */ Removed: trunk/reactos/ntoskrnl/ob/wait.c URL:
http://svn.reactos.ru/svn/reactos/trunk/reactos/ntoskrnl/ob/wait.c?rev=2249…
============================================================================== --- trunk/reactos/ntoskrnl/ob/wait.c (original) +++ trunk/reactos/ntoskrnl/ob/wait.c (removed) @@ -1,531 +1,0 @@ -/* - * PROJECT: ReactOS Kernel - * LICENSE: GPL - See COPYING in the top level directory - * FILE: ntoskrnl/ob/wait.c - * PURPOSE: Handles Waiting on Objects - * PROGRAMMERS: Alex Ionescu (alex(a)relsoft.net) - * David Welch (welch(a)mcmail.com) - */ - -/* INCLUDES ******************************************************************/ - -#include <ntoskrnl.h> -#define NDEBUG -#include <internal/debug.h> - -#define TAG_WAIT TAG('W', 'a', 'i', 't') - -/* FUNCTIONS *****************************************************************/ - -/*++ -* @name NtWaitForMultipleObjects -* @implemented NT4 -* -* The NtWaitForMultipleObjects routine <FILLMEIN> -* -* @param ObjectCount -* <FILLMEIN> -* -* @param HandleArray -* <FILLMEIN> -* -* @param WaitType -* <FILLMEIN> -* -* @param Alertable -* <FILLMEIN> -* -* @param TimeOut -* <FILLMEIN> -* -* @return STATUS_SUCCESS or appropriate error value. -* -* @remarks None. -* -*--*/ -NTSTATUS -NTAPI -NtWaitForMultipleObjects(IN ULONG ObjectCount, - IN PHANDLE HandleArray, - IN WAIT_TYPE WaitType, - IN BOOLEAN Alertable, - IN PLARGE_INTEGER TimeOut OPTIONAL) -{ - PKWAIT_BLOCK WaitBlockArray = NULL; - HANDLE Handles[MAXIMUM_WAIT_OBJECTS]; - PVOID Objects[MAXIMUM_WAIT_OBJECTS]; - PVOID WaitObjects[MAXIMUM_WAIT_OBJECTS]; - ULONG i = 0, ReferencedObjects = 0, j; - KPROCESSOR_MODE PreviousMode = ExGetPreviousMode(); - LARGE_INTEGER SafeTimeOut; - BOOLEAN LockInUse; - PHANDLE_TABLE_ENTRY HandleEntry; - POBJECT_HEADER ObjectHeader; - PHANDLE_TABLE HandleTable; - ACCESS_MASK GrantedAccess; - PVOID DefaultObject; - NTSTATUS Status = STATUS_SUCCESS; - - DPRINT("NtWaitForMultipleObjects(ObjectCount %lu HandleArray[] %x," - " Alertable %d, TimeOut %x)\n", - ObjectCount, HandleArray, Alertable, TimeOut); - - /* Enter a critical region since we'll play with handles */ - LockInUse = TRUE; - KeEnterCriticalRegion(); - - /* Check for valid Object Count */ - if ((ObjectCount > MAXIMUM_WAIT_OBJECTS) || !ObjectCount) - { - Status = STATUS_INVALID_PARAMETER_1; - DPRINT1("No object count, or too many objects\n"); - goto Quickie; - } - - /* Check for valid Wait Type */ - if ((WaitType != WaitAll) && (WaitType != WaitAny)) - { - Status = STATUS_INVALID_PARAMETER_3; - DPRINT1("Invalid wait type\n"); - goto Quickie; - } - - /* Capture arguments */ - _SEH_TRY - { - if(PreviousMode != KernelMode) - { - ProbeForRead(HandleArray, - ObjectCount * sizeof(HANDLE), - sizeof(HANDLE)); - - if(TimeOut) - { - /* Make a local copy of the timeout on the stack */ - SafeTimeOut = ProbeForReadLargeInteger(TimeOut); - TimeOut = &SafeTimeOut; - } - } - - /* - * Make a copy so we don't have to guard with SEH later and keep - * track of what objects we referenced if dereferencing pointers - * suddenly fails - */ - RtlCopyMemory(Handles, - HandleArray, - ObjectCount * sizeof(HANDLE)); - } - _SEH_HANDLE - { - Status = _SEH_GetExceptionCode(); - } - _SEH_END; - - if(!NT_SUCCESS(Status)) goto Quickie; - - /* Check if we can use the internal Wait Array */ - if (ObjectCount > THREAD_WAIT_OBJECTS) - { - /* Allocate from Pool */ - WaitBlockArray = ExAllocatePoolWithTag(NonPagedPool, - ObjectCount * sizeof(KWAIT_BLOCK), - TAG_WAIT); - } - - /* Start the loop */ - do - { - /* Use the right Executive Handle */ - if(ObIsKernelHandle(Handles[i], PreviousMode)) - { - /* Use the System Handle Table and decode */ - HandleTable = ObpKernelHandleTable; - Handles[i] = ObKernelHandleToHandle(Handles[i]); - } - else - { - /* Use the Process' Handle table and get the Ex Handle */ - HandleTable = PsGetCurrentProcess()->ObjectTable; - } - - /* Get a pointer to it */ - if (!(HandleEntry = ExMapHandleToPointer(HandleTable, Handles[i]))) - { - DPRINT1("Invalid handle\n"); - Status = STATUS_INVALID_HANDLE; - goto Quickie; - } - - /* Check for synchronize access */ - GrantedAccess = HandleEntry->GrantedAccess; - if ((PreviousMode != KernelMode) && (!(GrantedAccess & SYNCHRONIZE))) - { - /* Unlock the entry and fail */ - ExUnlockHandleTableEntry(HandleTable, HandleEntry); - Status = STATUS_ACCESS_DENIED; - DPRINT1("Handle doesn't have SYNCH access\n"); - goto Quickie; - } - - /* Get the Object Header */ - ObjectHeader = EX_HTE_TO_HDR(HandleEntry); - - /* Get default Object */ - DefaultObject = ObjectHeader->Type->DefaultObject; - - /* Check if it's the internal offset */ - if (IsPointerOffset(DefaultObject)) - { - /* Increase reference count */ - InterlockedIncrement(&ObjectHeader->PointerCount); - ReferencedObjects++; - - /* Save the Object and Wait Object, this is a relative offset */ - Objects[i] = &ObjectHeader->Body; - WaitObjects[i] = (PVOID)((ULONG_PTR)&ObjectHeader->Body + - (ULONG_PTR)DefaultObject); - } - else - { - /* This is our internal Object */ - ReferencedObjects++; - Objects[i] = NULL; - WaitObjects[i] = DefaultObject; - } - - /* Unlock the Handle Table Entry */ - ExUnlockHandleTableEntry(HandleTable, HandleEntry); - - /* Keep looping */ - i++; - } while (i < ObjectCount); - - /* For a Waitall, we can't have the same object more then once */ - if (WaitType == WaitAll) - { - /* Clear the main loop variable */ - i = 0; - - /* Start the loop */ - do - { - /* Check the current and forward object */ - for (j = i + 1; j < ObjectCount; j++) - { - /* Make sure they don't match */ - if (WaitObjects[i] == WaitObjects[j]) - { - /* Fail */ - Status = STATUS_INVALID_PARAMETER_MIX; - DPRINT1("Objects duplicated with WaitAll\n"); - goto Quickie; - } - } - - /* Keep looping */ - i++; - } while (i < ObjectCount); - } - - /* Now we can finally wait. Use SEH since it can raise an exception */ - _SEH_TRY - { - /* We're done playing with handles */ - LockInUse = FALSE; - KeLeaveCriticalRegion(); - - /* Do the kernel wait */ - Status = KeWaitForMultipleObjects(ObjectCount, - WaitObjects, - WaitType, - UserRequest, - PreviousMode, - Alertable, - TimeOut, - WaitBlockArray); - } - _SEH_HANDLE - { - Status = _SEH_GetExceptionCode(); - } - _SEH_END; - -Quickie: - /* First derefence */ - while (ReferencedObjects) - { - ReferencedObjects--; - if (Objects[ReferencedObjects]) - { - ObDereferenceObject(Objects[ReferencedObjects]); - } - } - - /* Free wait block array */ - if (WaitBlockArray) ExFreePool(WaitBlockArray); - - /* Re-enable APCs if needed */ - if (LockInUse) KeLeaveCriticalRegion(); - - /* Return status */ - DPRINT("Returning: %x\n", Status); - return Status; -} - -/*++ -* @name NtWaitForSingleObject -* @implemented NT4 -* -* The NtWaitForSingleObject routine <FILLMEIN> -* -* @param ObjectHandle -* <FILLMEIN> -* -* @param Alertable -* <FILLMEIN> -* -* @param TimeOut -* <FILLMEIN> -* -* @return STATUS_SUCCESS or appropriate error value. -* -* @remarks None. -* -*--*/ -NTSTATUS -NTAPI -NtWaitForSingleObject(IN HANDLE ObjectHandle, - IN BOOLEAN Alertable, - IN PLARGE_INTEGER TimeOut OPTIONAL) -{ - PVOID Object, WaitableObject; - KPROCESSOR_MODE PreviousMode = ExGetPreviousMode(); - LARGE_INTEGER SafeTimeOut; - NTSTATUS Status = STATUS_SUCCESS; - - DPRINT("NtWaitForSingleObject(ObjectHandle %x, Alertable %d, TimeOut %x)\n", - ObjectHandle,Alertable,TimeOut); - - /* Capture timeout */ - if(TimeOut && PreviousMode != KernelMode) - { - _SEH_TRY - { - /* Make a copy on the stack */ - SafeTimeOut = ProbeForReadLargeInteger(TimeOut); - TimeOut = &SafeTimeOut; - } - _SEH_HANDLE - { - Status = _SEH_GetExceptionCode(); - } - _SEH_END; - - if(!NT_SUCCESS(Status)) return Status; - } - - /* Get the Object */ - Status = ObReferenceObjectByHandle(ObjectHandle, - SYNCHRONIZE, - NULL, - PreviousMode, - &Object, - NULL); - if (NT_SUCCESS(Status)) - { - /* Get the Waitable Object */ - WaitableObject = OBJECT_TO_OBJECT_HEADER(Object)->Type->DefaultObject; - - /* Is it an offset for internal objects? */ - if (IsPointerOffset(WaitableObject)) - { - /* Turn it into a pointer */ - WaitableObject = (PVOID)((ULONG_PTR)Object + - (ULONG_PTR)WaitableObject); - } - - /* Now wait. Also SEH this since it can also raise an exception */ - _SEH_TRY - { - Status = KeWaitForSingleObject(WaitableObject, - UserRequest, - PreviousMode, - Alertable, - TimeOut); - } - _SEH_HANDLE - { - Status = _SEH_GetExceptionCode(); - } - _SEH_END; - - /* Dereference the Object */ - ObDereferenceObject(Object); - } - - /* Return the status */ - return Status; -} - -/*++ -* @name NtSignalAndWaitForSingleObject -* @implemented NT4 -* -* The NtSignalAndWaitForSingleObject routine <FILLMEIN> -* -* @param ObjectHandleToSignal -* <FILLMEIN> -* -* @param WaitableObjectHandle -* <FILLMEIN> -* -* @param Alertable -* <FILLMEIN> -* -* @param TimeOut -* <FILLMEIN> -* -* @return STATUS_SUCCESS or appropriate error value. -* -* @remarks None. -* -*--*/ -NTSTATUS -NTAPI -NtSignalAndWaitForSingleObject(IN HANDLE ObjectHandleToSignal, - IN HANDLE WaitableObjectHandle, - IN BOOLEAN Alertable, - IN PLARGE_INTEGER TimeOut OPTIONAL) -{ - KPROCESSOR_MODE PreviousMode = ExGetPreviousMode(); - POBJECT_TYPE Type; - PVOID SignalObj; - PVOID WaitObj; - PVOID WaitableObject; - LARGE_INTEGER SafeTimeOut; - OBJECT_HANDLE_INFORMATION HandleInfo; - NTSTATUS Status = STATUS_SUCCESS; - - /* Capture timeout */ - DPRINT("NtSignalAndWaitForSingleObject\n"); - if(TimeOut && PreviousMode != KernelMode) - { - _SEH_TRY - { - /* Make a copy on the stack */ - SafeTimeOut = ProbeForReadLargeInteger(TimeOut); - TimeOut = &SafeTimeOut; - } - _SEH_HANDLE - { - Status = _SEH_GetExceptionCode(); - } - _SEH_END; - - if(!NT_SUCCESS(Status)) return Status; - } - - /* Start by getting the signal object*/ - Status = ObReferenceObjectByHandle(ObjectHandleToSignal, - 0, - NULL, - PreviousMode, - &SignalObj, - &HandleInfo); - if (!NT_SUCCESS(Status)) - { - return Status; - } - - /* Now get the wait object */ - Status = ObReferenceObjectByHandle(WaitableObjectHandle, - SYNCHRONIZE, - NULL, - PreviousMode, - &WaitObj, - NULL); - if (!NT_SUCCESS(Status)) - { - ObDereferenceObject(SignalObj); - return Status; - } - - /* Get the real waitable object */ - WaitableObject = OBJECT_TO_OBJECT_HEADER(WaitObj)->Type->DefaultObject; - - /* Handle internal offset */ - if (IsPointerOffset(WaitableObject)) - { - /* Get real pointer */ - WaitableObject = (PVOID)((ULONG_PTR)WaitObj + - (ULONG_PTR)WaitableObject); - } - - /* Check Signal Object Type */ - Type = OBJECT_TO_OBJECT_HEADER(WaitObj)->Type; - if (Type == ExEventObjectType) - { - /* Set the Event */ - /* FIXME: Check permissions */ - KeSetEvent(SignalObj, EVENT_INCREMENT, TRUE); - } - else if (Type == ExMutantObjectType) - { - /* Release the Mutant. This can raise an exception*/ - _SEH_TRY - { - KeReleaseMutant(SignalObj, MUTANT_INCREMENT, FALSE, TRUE); - } - _SEH_HANDLE - { - Status = _SEH_GetExceptionCode(); - goto Quickie; - } - _SEH_END; - } - else if (Type == ExSemaphoreObjectType) - { - /* Release the Semaphore. This can raise an exception*/ - /* FIXME: Check permissions */ - _SEH_TRY - { - KeReleaseSemaphore(SignalObj, SEMAPHORE_INCREMENT, 1, TRUE); - } - _SEH_HANDLE - { - Status = _SEH_GetExceptionCode(); - goto Quickie; - } - _SEH_END; - } - else - { - Status = STATUS_OBJECT_TYPE_MISMATCH; - DPRINT1("Waiting on invalid object type\n"); - goto Quickie; - } - - /* Now wait. Also SEH this since it can also raise an exception */ - _SEH_TRY - { - Status = KeWaitForSingleObject(WaitableObject, - UserRequest, - PreviousMode, - Alertable, - TimeOut); - } - _SEH_HANDLE - { - Status = _SEH_GetExceptionCode(); - } - _SEH_END; - - /* We're done here */ -Quickie: - ObDereferenceObject(SignalObj); - ObDereferenceObject(WaitObj); - return Status; -} - -/* EOF */
18 years, 4 months
1
0
0
0
← Newer
1
...
21
22
23
24
25
26
27
...
60
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
Results per page:
10
25
50
100
200