reactos.git
8 months ago[SETUPLIB] Properly cleanup the temporary registry keys created for setting up the...
Hermès Bélusca-Maïto [Tue, 9 Jan 2018 01:56:00 +0000 (02:56 +0100)]
[SETUPLIB] Properly cleanup the temporary registry keys created for setting up the registry.

This includes also to remove the created symlinks.
Symlinks deletion is special, as one has to open first the symlink
itself (and not its target), then remove the "SymbolicLinkTarget" value
before really deleting the key. Of course everything must be done under
proper access rights.

Additional changes:
- Change prototype BOOLEAN CmpLinkKeyToHive(...) to NTSTATUS CreateSymLinkKey(...).
- Silence few DPRINTs.
- Document some FIXMEs that I need to inspect later on ReactOS.
- HKEY --> HANDLE.

8 months ago[SETUPLIB][USETUP] Move the registry-update procedure into setuplib.
Hermès Bélusca-Maïto [Sun, 3 Sep 2017 16:17:27 +0000 (16:17 +0000)]
[SETUPLIB][USETUP] Move the registry-update procedure into setuplib.

- It can therefore be also used by the 1st-stage GUI setup.
- Rename some function parameters to clarify what they should be.

Based on:
svn path=/branches/setup_improvements/; revision=75750

8 months ago[USETUP] Introduce some -V functions for CONSOLE_ConOutPrintf, CONSOLE_SetStatusText...
Hermès Bélusca-Maïto [Sun, 3 Sep 2017 16:03:21 +0000 (16:03 +0000)]
[USETUP] Introduce some -V functions for CONSOLE_ConOutPrintf, CONSOLE_SetStatusText and CONSOLE_SetStatusTextX.

Additions:
- Use explicit __cdecl calling convention for variadic functions.
- Fix also the whitespace in consup.h.

svn path=/branches/setup_improvements/; revision=75749

8 months ago[README] Update to README File for git (#990)
Phosphorus Moscu [Sun, 28 Oct 2018 12:21:09 +0000 (09:21 -0300)]
[README] Update to README File for git (#990)

When I click the logo it will redirect to the website.

8 months ago[SHELL32] Fix broken control definition
Mark Jansen [Sun, 28 Oct 2018 12:06:27 +0000 (13:06 +0100)]
[SHELL32] Fix broken control definition

8 months ago[SETUPAPI] Fix broken control definition.
Mark Jansen [Sun, 28 Oct 2018 12:06:08 +0000 (13:06 +0100)]
[SETUPAPI] Fix broken control definition.

8 months ago[WIN32SS] Disable scrollbars when SIF_DISABLENOSCROLL is used 963/head
Mark Jansen [Sun, 21 Oct 2018 17:09:09 +0000 (19:09 +0200)]
[WIN32SS] Disable scrollbars when SIF_DISABLENOSCROLL is used
CORE-13918

8 months ago[KERNEL32] Directly use UnhandledExceptionFilter in BaseProcessStartup 953/head
Mark Jansen [Sat, 20 Oct 2018 13:38:21 +0000 (15:38 +0200)]
[KERNEL32] Directly use UnhandledExceptionFilter in BaseProcessStartup

8 months ago[KERNEL32] Use the default UnhandledExceptionFilter in BaseThreadStartup.
Mark Jansen [Thu, 18 Oct 2018 20:07:37 +0000 (22:07 +0200)]
[KERNEL32] Use the default UnhandledExceptionFilter in BaseThreadStartup.
This should allow unhandled exceptions in a thread to trigger our crash reporter,
instead of killing the process directly.

8 months ago[DRWTSN32] Improve stack dumping 962/head
Mark Jansen [Sun, 21 Oct 2018 12:46:44 +0000 (14:46 +0200)]
[DRWTSN32] Improve stack dumping

8 months ago[SETUPLIB] Store the vendor name for each discovered NTOS installation.
Hermès Bélusca-Maïto [Fri, 29 Dec 2017 18:37:28 +0000 (19:37 +0100)]
[SETUPLIB] Store the vendor name for each discovered NTOS installation.

Take also the opportunity to simplify a little bit the code.

8 months ago[USETUP] Add new file-operation-related messages for deletion, moving and renaming.
Hermès Bélusca-Maïto [Fri, 5 Jan 2018 00:49:09 +0000 (01:49 +0100)]
[USETUP] Add new file-operation-related messages for deletion, moving and renaming.

8 months ago[SETUPLIB] Remove a deprecated error number (that gets merged with ERROR_TXTSETUP_SEC...
Hermès Bélusca-Maïto [Sat, 30 Dec 2017 17:21:42 +0000 (18:21 +0100)]
[SETUPLIB] Remove a deprecated error number (that gets merged with ERROR_TXTSETUP_SECTION).

[USETUP] Improve usage of ERROR_TXTSETUP_SECTION and ERROR_CABINET_SECTION error codes, correctly display associated error message, and remove a deprecated string.

8 months ago[USETUP] Remove now-redundant file (already used with SETUPLIB).
Hermès Bélusca-Maïto [Sat, 30 Dec 2017 17:09:37 +0000 (18:09 +0100)]
[USETUP] Remove now-redundant file (already used with SETUPLIB).

8 months ago[SETUPLIB][USETUP] Don't store UI-related display strings in GENERIC_LIST_ENTRY-ies...
Hermès Bélusca-Maïto [Fri, 29 Dec 2017 18:09:56 +0000 (19:09 +0100)]
[SETUPLIB][USETUP] Don't store UI-related display strings in GENERIC_LIST_ENTRY-ies, + other code adaptations.

- Apart from allowing a UI cache variable that may be used when
  displaying GENERIC_LIST_ENTRY-ies, do not store any display strings
  associated to these list entries. They should be instead computed only
  when initializing a list UI (or a combo-box or list control if the
  code is used in Win32 environment).
  For this matter a callback is provided to InitGenericListUi() that
  does the job of computing the displayed string corresponding to a
  given GENERIC_LIST_ENTRY.

- Simplify the calls to InitGenericListUi(), and refactor the
  RestoreGenericListUiState() function.

- Use for-loops for iterating over GENERIC_LIST items.

- Adapt the storage data format for lists of settings items.

- The txtsetup.sif INF format specified in LoadSetupInf() should not be
  INF_STYLE_WIN4 (to be investigated...).

8 months ago[SETUPLIB][USETUP] Bring some suggestions from PR #59 in.
Hermès Bélusca-Maïto [Sat, 23 Dec 2017 19:17:38 +0000 (20:17 +0100)]
[SETUPLIB][USETUP] Bring some suggestions from PR #59 in.

- Use OBJ_CASE_INSENSITIVE when initializing object attributes
  (no actual reason why to keep case sensitivity there).

- Check the success of a RtlStringCchPrintfW call in EnumerateReactOSEntries().

- Explicitly check for returned STATUS_NOT_SUPPORTED from ChkdskPartition()
  or FormatPartition(), and display an appropriate error message.

- Remove some left-over comments but also explain why I kept some
  commented code (mainly for future reference).

8 months ago[SETUPLIB] Improve the bootloader 'validity' checks -- Addendum to f06734e5 (r74512).
Hermès Bélusca-Maïto [Sun, 24 Dec 2017 21:37:19 +0000 (22:37 +0100)]
[SETUPLIB] Improve the bootloader 'validity' checks -- Addendum to f06734e5 (r74512).

Adapted from PR #89 by Serge Gautherie.
This should improve the situation described in CORE-12672 and CORE-4870.

8 months ago[SETUPLIB] Improve an alternate code implementation.
Hermès Bélusca-Maïto [Fri, 22 Dec 2017 22:28:53 +0000 (23:28 +0100)]
[SETUPLIB] Improve an alternate code implementation.

Comment about the status of two '#if 0'.

[SETUPLIB] Fix some uninitialized variables (caught by clang-cl).
Also, initialize NtName->Length in return paths in ResolveArcNameManually().

8 months ago[USETUP] Move the SetupExtractFile() function to where it is (only) used.
Hermès Bélusca-Maïto [Mon, 4 Sep 2017 20:00:22 +0000 (20:00 +0000)]
[USETUP] Move the SetupExtractFile() function to where it is (only) used.

svn path=/branches/setup_improvements/; revision=75762

8 months ago[SETUPLIB][USETUP] Use NT RTL String Safe functions instead of Win32-oriented ones...
Hermès Bélusca-Maïto [Sun, 3 Sep 2017 20:05:11 +0000 (20:05 +0000)]
[SETUPLIB][USETUP] Use NT RTL String Safe functions instead of Win32-oriented ones (and remove usage of HRESULT too).

Based on:
svn path=/branches/setup_improvements/; revision=75755
svn path=/branches/setup_improvements/; revision=75757

8 months ago[SETUPLIB][USETUP] Make the GENERIC_LIST store the items display text in UNICODE...
Hermès Bélusca-Maïto [Sun, 3 Sep 2017 19:46:26 +0000 (19:46 +0000)]
[SETUPLIB][USETUP] Make the GENERIC_LIST store the items display text in UNICODE (and not in ANSI).

Only convert to ANSI when needed (e.g. in the display code for usetup).
The 1st-stage GUI setup will however use the UNICODE strings directly.

svn path=/branches/setup_improvements/; revision=75753

8 months ago[USETUP] Whitespace fixes only.
Hermès Bélusca-Maïto [Sun, 3 Sep 2017 19:31:36 +0000 (19:31 +0000)]
[USETUP] Whitespace fixes only.

svn path=/branches/setup_improvements/; revision=75752

8 months ago[SETUPLIB][USETUP] Move the floppy-disk accessibility check into InstallFatBootcodeTo...
Hermès Bélusca-Maïto [Sun, 3 Sep 2017 16:19:59 +0000 (16:19 +0000)]
[SETUPLIB][USETUP] Move the floppy-disk accessibility check into InstallFatBootcodeToFloppy().

svn path=/branches/setup_improvements/; revision=75751

8 months ago[USETUP] Resources: fix a typo.
Hermès Bélusca-Maïto [Sun, 3 Sep 2017 12:08:39 +0000 (12:08 +0000)]
[USETUP] Resources: fix a typo.

svn path=/branches/setup_improvements/; revision=75748

8 months ago[SETUPLIB][USETUP][INPUT.CPL] MUI integration with setuplib.
Hermès Bélusca-Maïto [Wed, 30 Aug 2017 11:28:52 +0000 (11:28 +0000)]
[SETUPLIB][USETUP][INPUT.CPL] MUI integration with setuplib.

[SETUPLIB] Copy the mui* files from usetup into the setuplib for later usage, and add mui.c to build.

svn path=/branches/setup_improvements/; revision=75711

[SETUPLIB][USETUP] Start massaging the MUI files and split up what concerns only the usetup "resources",
and what concerns general language parameters (in the setuplib).

It may be interesting to retrieve the language parameters
from INF file (e.g. intl.inf) (suggested by Giannis).

svn path=/branches/setup_improvements/; revision=75715

[SETUPLIB] Add the necessary headers to mui.c to be able to compile.
[USETUP] Comment out the languages that don't have any resources.

svn path=/branches/setup_improvements/; revision=75716

[SETUPLIB][USETUP] Adjust MUI and settings code.

- Re-enable settings code concerning language, keyboards & layout
  in the setuplib, and remove the old code in usetup.

- Remove useless code in setuplib's mui.c.

- Rename usetup's MUI "LanguageList" into "ResourceList" so as to
  avoid colliding with the "LanguageList" of setuplib.

- Add the magic CMakeLists line "add_definitions(${I18N_DEFS})" that
  I forgot previously, that caused the "LanguageList" of setuplib to be empty!

The code compiles and works during my tests.

svn path=/branches/setup_improvements/; revision=75717

[SETUPLIB] Change some string pointer types & function prototypes so that the usetup-specific
"SelectedLanguageId" variable is not used in the library.

svn path=/branches/setup_improvements/; revision=75719

[SETUPLIB] Change some function prototypes so that the usetup-specific "SelectedLanguageId" variable is not used in the library.
Also, make AddEntriesFromInfSection(), DefaultProcessEntry() and the typedef PPROCESS_ENTRY_ROUTINE private again.

svn path=/branches/setup_improvements/; revision=75720
svn path=/branches/setup_improvements/; revision=75724

[USETUP] Code adaptations.

- Transform some do{}while() loops into while(){} ones, since the lists on which we work may only contain one single {NULL} element.
- Modify MUIGetOEMCodePage() call after r75719.
- Use PCWSTR where needed.

svn path=/branches/setup_improvements/; revision=75722

[USETUP] Adjust some MUI & settings calls, following the commits r75719, r75720 and r75721.

svn path=/branches/setup_improvements/; revision=75723

[INPUT.CPL] Adjust inclusion of "muifonts.h" (commit 3dbd44f) due to changes introduced in r75711 and r75715.

8 months ago[SCHEDSVC] Improvements to the scheduler service
Eric Kohl [Sat, 27 Oct 2018 22:02:18 +0000 (00:02 +0200)]
[SCHEDSVC] Improvements to the scheduler service

Use WaitForMultipleObjects in the mail scheduler loop:
- Use events to signal service stop and job update events to the main loop.
- Use the timeout timer to start the next job.

8 months ago[NTOSKRNL] Rewrite IoCheckEaBufferValidity() so that it's less magic
Pierre Schweitzer [Sat, 27 Oct 2018 19:54:55 +0000 (21:54 +0200)]
[NTOSKRNL] Rewrite IoCheckEaBufferValidity() so that it's less magic

And make its coding style consistent with our rules

8 months ago[WIN32SS][NTGDI] Refactoring PATH_WidenPath (#888)
Katayama Hirofumi MZ [Sat, 27 Oct 2018 20:13:08 +0000 (05:13 +0900)]
[WIN32SS][NTGDI] Refactoring PATH_WidenPath (#888)

Preparation to support pen width.
Split IntGdiWidenPath function from PATH_WidenPath function.
IntGdiWidenPath is independent from DC.
CORE-2527, CORE-13534

8 months ago[SETUPLIB][USETUP] Move the settings code from usetup to setuplib.
Hermès Bélusca-Maïto [Mon, 28 Aug 2017 14:46:49 +0000 (14:46 +0000)]
[SETUPLIB][USETUP] Move the settings code from usetup to setuplib.

This code is moved ther since it'll be needed for 1st-stage GUI
installer as well.

The code dealing with keyboard layouts is however not moved yet,
since it uses MUI* functions from usetup.
I'll try to think how to include that in setuplib...

svn path=/branches/setup_improvements/; revision=75701

8 months ago[SETUPLIB] Move the files that implement utility functions into their own subdirector...
Hermès Bélusca-Maïto [Mon, 28 Aug 2017 11:28:08 +0000 (11:28 +0000)]
[SETUPLIB] Move the files that implement utility functions into their own subdirectory. The files remaining in the main directory implement setup procedures that use the utility functions.

svn path=/branches/setup_improvements/; revision=75695

8 months ago[USETUP][SETUPLIB] Move the bootsup.c code into the setuplib, and perform the necessa...
Hermès Bélusca-Maïto [Sat, 26 Aug 2017 11:42:32 +0000 (11:42 +0000)]
[USETUP][SETUPLIB] Move the bootsup.c code into the setuplib, and perform the necessary adjustments.

Move the bootsup.c code into the setuplib, as the code is generic
enough to be used by both USETUP and the 1st-stage GUI installer.

svn path=/branches/setup_improvements/; revision=75674

8 months ago[NTUSER] NtUserxSwitchToThisWindow 2nd argument is fAltTab (#989)
Katayama Hirofumi MZ [Sat, 27 Oct 2018 18:27:49 +0000 (03:27 +0900)]
[NTUSER] NtUserxSwitchToThisWindow 2nd argument is fAltTab (#989)

Fix the 2nd parameter name of NtUserxSwitchToThisWindow. #988 similiarly.
CORE-15165

8 months ago[WIN32SS] SwitchToThisWindow 2nd argument is fAltTab (#988)
Katayama Hirofumi MZ [Sat, 27 Oct 2018 18:14:04 +0000 (03:14 +0900)]
[WIN32SS] SwitchToThisWindow 2nd argument is fAltTab (#988)

https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-switchtothiswindow
CORE-15165

8 months ago[WIN32SS] Move SwitchToThisWindow codes to win32k (#987)
Katayama Hirofumi MZ [Sat, 27 Oct 2018 17:56:16 +0000 (02:56 +0900)]
[WIN32SS] Move SwitchToThisWindow codes to win32k (#987)

- Implement user32!SwitchToThisWindow by NtUserCallTwoParam TWOPARAM_ROUTINE_SWITCHTOTHISWINDOW.
- Improve user32!CloseWindow with using SetActiveWindow and ShowWindow (synchronized).
CORE-15165

8 months ago[NTOSKRNL] Properly handle "big" security descriptors in ObpCaptureObjectCreateInform...
Pierre Schweitzer [Sat, 27 Oct 2018 17:35:45 +0000 (19:35 +0200)]
[NTOSKRNL] Properly handle "big" security descriptors in ObpCaptureObjectCreateInformation()

8 months ago[NTOSKRNL] Implement SeComputeQuotaInformationSize()
Pierre Schweitzer [Sat, 27 Oct 2018 17:32:42 +0000 (19:32 +0200)]
[NTOSKRNL] Implement SeComputeQuotaInformationSize()

8 months ago[WKSSVC][IDL] Add names of unsupported functions
Eric Kohl [Sat, 27 Oct 2018 17:04:31 +0000 (19:04 +0200)]
[WKSSVC][IDL] Add names of unsupported functions

8 months ago[LSASRV][IDL] The first parameter of the Credr* functions is a PLSAPR_SERVER_NAME.
Eric Kohl [Sat, 27 Oct 2018 15:02:02 +0000 (17:02 +0200)]
[LSASRV][IDL] The first parameter of the Credr* functions is a PLSAPR_SERVER_NAME.

8 months ago[USETUP] Add an AddEntriesFromInfSection() helper that enumerates the entries of...
Hermès Bélusca-Maïto [Mon, 28 Aug 2017 14:01:30 +0000 (14:01 +0000)]
[USETUP] Add an AddEntriesFromInfSection() helper that enumerates the entries of a given INF section, and adds these into a (user-allocated) GENERIC_LIST after some pre-processing.

This helper is inspired by the reactos/reactos.c!LoadGenEntry() function.
Use this helper in the different Create*List() functions.

svn path=/branches/setup_improvements/; revision=75700

8 months ago[USETUP] Simplify code.
Hermès Bélusca-Maïto [Mon, 28 Aug 2017 13:51:25 +0000 (13:51 +0000)]
[USETUP] Simplify code.

svn path=/branches/setup_improvements/; revision=75698

8 months ago[USETUP] Formatting fixes only.
Hermès Bélusca-Maïto [Mon, 28 Aug 2017 13:50:40 +0000 (13:50 +0000)]
[USETUP] Formatting fixes only.

svn path=/branches/setup_improvements/; revision=75697
svn path=/branches/setup_improvements/; revision=75699

8 months ago[USETUP] Add few checks to forbid the user to attempt installing ReactOS in the insta...
Hermès Bélusca-Maïto [Fri, 25 Aug 2017 14:38:12 +0000 (14:38 +0000)]
[USETUP] Add few checks to forbid the user to attempt installing ReactOS in the installation source directory, or a subdirectory thereof, or to delete the partition containing the installation source.

This is needed because the ReactOS installer can also be present from within a HDD partition!

svn path=/branches/setup_improvements/; revision=75669

8 months ago[USETUP] Group constant strings together. In EventThread(), use RtlReAllocateHeap...
Hermès Bélusca-Maïto [Wed, 23 Aug 2017 13:40:43 +0000 (13:40 +0000)]
[USETUP] Group constant strings together. In EventThread(), use RtlReAllocateHeap() to resize the pnp-event buffer.

svn path=/branches/setup_improvements/; revision=75654

8 months ago[SETUPLIB] Diverse fixes (incl. initialization fixes).
Hermès Bélusca-Maïto [Fri, 25 Aug 2017 09:19:44 +0000 (09:19 +0000)]
[SETUPLIB] Diverse fixes (incl. initialization fixes).

- Compute the installation source paths based on the full path of the
  installer program that uses the setup library.
- Add INF_STYLE_OLDNT define in infsupp.h.
- Add some (silenced) diagnostic DPRINTs.

svn path=/branches/setup_improvements/; revision=75667

- Use correct inf style flags in SetupOpenInfFileEx() calls when opening
  txtsetup.sif and unattend.inf. Technically txtsetup.sif would be
  INF_STYLE_WIN4, but since we use "$ReactOS$" as its version signature,
  it would not work when opening it with setupapi.dll functions.
  Hence this flag is combined with INF_STYLE_OLDNT too.

- Don't fail if opening the \SystemRoot symbolic link doesn't work
  (usually due to incorrect access rights); in that case, just use the
  installer image file path as the installation source path.

svn path=/branches/setup_improvements/; revision=75676

8 months ago[SETUPLIB] Code formatting fix.
Hermès Bélusca-Maïto [Wed, 23 Aug 2017 17:47:39 +0000 (17:47 +0000)]
[SETUPLIB] Code formatting fix.

svn path=/branches/setup_improvements/; revision=75656

8 months ago[SETUPLIB] Introduce and use a UnMapAndCloseFile() macro that calls UnMapFile() and...
Hermès Bélusca-Maïto [Wed, 23 Aug 2017 12:20:15 +0000 (12:20 +0000)]
[SETUPLIB] Introduce and use a UnMapAndCloseFile() macro that calls UnMapFile() and NtClose() on handles returned by the OpenAndMapFile() function.

svn path=/branches/setup_improvements/; revision=75651
svn path=/branches/setup_improvements/; revision=75657

8 months ago[SETUPLIB][USETUP] Code refactoring: rename the old DoesPathExist() into DoesDirExist...
Hermès Bélusca-Maïto [Mon, 21 Aug 2017 19:41:40 +0000 (19:41 +0000)]
[SETUPLIB][USETUP] Code refactoring: rename the old DoesPathExist() into DoesDirExist(), and rename the new DoesPathExistEx() back into DoesPathExist().

svn path=/branches/setup_improvements/; revision=75636

8 months ago[SETUPLIB] Merge DoesPathExist() and DoesFileExist() into (temporarily called) DoesPa...
Hermès Bélusca-Maïto [Mon, 21 Aug 2017 19:14:33 +0000 (19:14 +0000)]
[SETUPLIB] Merge DoesPathExist() and DoesFileExist() into (temporarily called) DoesPathExistEx() function.

And turn the previous two functions into macros.

svn path=/branches/setup_improvements/; revision=75635
svn path=/branches/setup_improvements/; revision=75652

8 months ago[SETUPLIB] Factor out and introduce a ParseArcName() helper function that does its...
Hermès Bélusca-Maïto [Sun, 20 Aug 2017 21:30:13 +0000 (21:30 +0000)]
[SETUPLIB] Factor out and introduce a ParseArcName() helper function that does its job.

Used in exiting code and in later code in this file.

svn path=/branches/setup_improvements/; revision=75632
svn path=/branches/setup_improvements/; revision=75652

8 months ago[SETUPLIB] Code formatting.
Hermès Bélusca-Maïto [Sun, 20 Aug 2017 21:02:24 +0000 (21:02 +0000)]
[SETUPLIB] Code formatting.

svn path=/branches/setup_improvements/; revision=75631
svn path=/branches/setup_improvements/; revision=75652

8 months ago[SYSSETUP] Use a $winnt$.inf file to retrieve setup information for the 2nd-stage...
Hermès Bélusca-Maïto [Thu, 10 Aug 2017 19:21:08 +0000 (19:21 +0000)]
[SYSSETUP] Use a $winnt$.inf file to retrieve setup information for the 2nd-stage setup.

Following r75518, we use the $winnt$.inf file (created in System32
by the 1st-stage installer) as the setup information file for the
2nd-stage setup for:

- retrieving the installation source media path;
- retrieving the unattended information that was copied from the
  unattend.inf file from the installation source media.

The installation source media path is converted from NT format to
Win32 format for usage with Win32 functions and storage in the registry:
this is done by GetInstallSourceWin32(), which replaces the hackish
GetRosInstallCD() function.

The $winnt$.inf file is also updated, and the registry values "SourcePath"
and "ServicePackSourcePath" are created / updated in:
HKLM\Software\Microsoft\Windows\CurrentVersion\Setup .

svn path=/branches/setup_improvements/; revision=75524

8 months ago[USETUP][SETUPLIB] Code refactoring.
Hermès Bélusca-Maïto [Wed, 9 Aug 2017 20:39:45 +0000 (20:39 +0000)]
[USETUP][SETUPLIB] Code refactoring.

- Move several global setup variables into a structure "USETUP_DATA",
  similar to the syssetup structure "SETUPDATA" (or the WIP 1st-stage
  installer structure of the same name), so that these variables can be
  set easily by different helper setup functions;

- Move CheckUnattendedSetup() and GetSourcePaths() to setuplib and make
  CheckUnattendedSetup() use the USETUP_DATA structure;

- Add a LoadSetupInf() function that loads the txtsetup.sif file
  (factoring out the corresponding code in USETUP);

- Add a InstallSetupInfFile() function (that I'll probably rename later on)
  whose purpose is to create a valid "$winnt$.inf" setup installation file
  in the ReactOS\system32 directory, which should help the 2nd-stage installer
  to correctly retrieve the source installation media we used during 1st-stage,
  and contain the unattended setup lines copied from unattend.inf. This is
  done in a Windows-compatible way.

svn path=/branches/setup_improvements/; revision=75518

[USETUP] Close the txtsetup.sif file at the end of the operations.

svn path=/branches/setup_improvements/; revision=75539

8 months ago[IDL] Fix coding style and indentation
Eric Kohl [Sat, 27 Oct 2018 14:34:37 +0000 (16:34 +0200)]
[IDL] Fix coding style and indentation

8 months ago[IDL] Fix coding style and indentation
Eric Kohl [Sat, 27 Oct 2018 13:48:21 +0000 (15:48 +0200)]
[IDL] Fix coding style and indentation

8 months ago[WIN32SS][USER32] Simplify CloseWindow (#986)
Katayama Hirofumi MZ [Sat, 27 Oct 2018 12:16:02 +0000 (21:16 +0900)]
[WIN32SS][USER32] Simplify CloseWindow (#986)

8 months ago[BROWSEUI] CInternetToolbar: fix whitespace
Giannis Adamopoulos [Sat, 27 Oct 2018 12:01:54 +0000 (15:01 +0300)]
[BROWSEUI] CInternetToolbar: fix whitespace

8 months ago[BROWSEUI] Simplify toggling the search band
Giannis Adamopoulos [Sat, 27 Oct 2018 11:01:20 +0000 (14:01 +0300)]
[BROWSEUI] Simplify toggling the search band
In windows the toolbar itself creates the search shell extension. In ros we send a command to the CShellBrowser to let it handle it itself. Use the same command for showing and hiding it.

8 months ago[BROWSEUI] Implement toggling the folders and search band with the toolbar and make...
Giannis Adamopoulos [Sat, 27 Oct 2018 08:52:04 +0000 (11:52 +0300)]
[BROWSEUI] Implement toggling the folders and search band with the toolbar and make their buttons appear pressed when they are shown.
CBaseBarSite: Ask the CBaseBar to close itself when the x button is pressed.
CBaseBar: Hide the bar and inform its site that it is closing when it gets the close command.
CShellBrowser: Cache the guid of the current vertical bar and use it to report correct command status to the toolbar.
Also implement toggling the Folders, Favorites, History and search commands.
CInternetToolbar: Query the Folders and Search command status from the site so that they can be properly be shown as pressed.

8 months ago[WIN32SS][USER32] Fix #984 (#985)
Katayama Hirofumi MZ [Sat, 27 Oct 2018 11:32:51 +0000 (20:32 +0900)]
[WIN32SS][USER32] Fix #984 (#985)

Sorry, I had to wait the build checks.

8 months ago[WIN32SS][USER32] CloseWindow does minimize, doesn't close (#984)
Katayama Hirofumi MZ [Sat, 27 Oct 2018 11:21:55 +0000 (20:21 +0900)]
[WIN32SS][USER32] CloseWindow does minimize, doesn't close (#984)

In Windows, user32!CloseWindow minimizes the window. It doesn't close the window actually. This is not a joke. This bad function naming is responsible to MS.

8 months ago[BOOTDATA] Define the ObUnsecureGlobalNames registry key on setup
Pierre Schweitzer [Sat, 27 Oct 2018 10:00:35 +0000 (12:00 +0200)]
[BOOTDATA] Define the ObUnsecureGlobalNames registry key on setup

It contains values that are present on W2K3 and required to avoid
regressions in .NET

See: https://blogs.msdn.microsoft.com/toddca/2005/06/08/normal-users-on-terminal-server-fail-to-run-net-framework-applications/

8 months ago[NTOSKRNL] Add support for unsecure object names
Pierre Schweitzer [Sat, 27 Oct 2018 09:48:52 +0000 (11:48 +0200)]
[NTOSKRNL] Add support for unsecure object names

8 months ago[NTOSKRNL] Implement the ObpIsUnsecureName() helper function
Pierre Schweitzer [Sat, 27 Oct 2018 09:47:42 +0000 (11:47 +0200)]
[NTOSKRNL] Implement the ObpIsUnsecureName() helper function

8 months ago[NTOSKRNL] Add support for the ObUnsecureGlobalNames registry key
Pierre Schweitzer [Sat, 27 Oct 2018 09:44:19 +0000 (11:44 +0200)]
[NTOSKRNL] Add support for the ObUnsecureGlobalNames registry key

8 months ago[WIN32SS][NTUSER] Make offset only for menu bars (#983)
Stanislav Motylkov [Sat, 27 Oct 2018 09:45:21 +0000 (12:45 +0300)]
[WIN32SS][NTUSER] Make offset only for menu bars (#983)

CORE-15226

8 months ago[NTOSKRNL] Reduce noise
Pierre Schweitzer [Sat, 27 Oct 2018 08:04:22 +0000 (10:04 +0200)]
[NTOSKRNL] Reduce noise

8 months ago[NTOSKRNL] Call internal helper to get VACB on mapping
Pierre Schweitzer [Sat, 27 Oct 2018 07:30:22 +0000 (09:30 +0200)]
[NTOSKRNL] Call internal helper to get VACB on mapping
We already properly round our offset

8 months ago[USETUP] Minor code formatting only.
Hermès Bélusca-Maïto [Wed, 9 Aug 2017 20:29:07 +0000 (20:29 +0000)]
[USETUP] Minor code formatting only.

svn path=/branches/setup_improvements/; revision=75517

8 months ago[USETUP] Sprinkle some INF_FreeData() calls to balance the INF_GetData() / INF_GetDat...
Hermès Bélusca-Maïto [Wed, 9 Aug 2017 20:24:24 +0000 (20:24 +0000)]
[USETUP] Sprinkle some INF_FreeData() calls to balance the INF_GetData() / INF_GetDataField() calls.

They currently do nothing, since the getter functions don't actually
capture (copy) the strings but merely return pointers to read-only strings.

But the calls are placed here for consistency, because if one day the
getters' implementation is changed so that strings are captured, it would
then be needed to free the allocated buffers.

In addition, fix a buggy call to INF_GetData() -- should be instead
INF_GetDataField() -- in AddSectionToCopyQueue().

svn path=/branches/setup_improvements/; revision=75516

8 months ago[USETUP] Comment out SetupQueueCopyWNew() declaration which is not used at all. Remov...
Hermès Bélusca-Maïto [Tue, 8 Aug 2017 14:07:17 +0000 (14:07 +0000)]
[USETUP] Comment out SetupQueueCopyWNew() declaration which is not used at all. Remove unnecessary casts in the INF_OpenBufferedFileA() call.

svn path=/branches/setup_improvements/; revision=75509

8 months ago[SETUPLIB] Introduce defines for size units.
Hermès Bélusca-Maïto [Tue, 8 Aug 2017 14:05:20 +0000 (14:05 +0000)]
[SETUPLIB] Introduce defines for size units.
[USETUP] Use them in the code.

svn path=/branches/setup_improvements/; revision=75508

8 months ago[SETUPLIB] IniCacheSave(): use the OBJ_CASE_INSENSITIVE flag.
Hermès Bélusca-Maïto [Tue, 8 Aug 2017 13:54:23 +0000 (13:54 +0000)]
[SETUPLIB] IniCacheSave(): use the OBJ_CASE_INSENSITIVE flag.

svn path=/branches/setup_improvements/; revision=75507

8 months ago[USETUP] Move SetDefaultPagefile() into settings.c and remove the now-empty registry...
Hermès Bélusca-Maïto [Fri, 30 Jun 2017 22:46:15 +0000 (22:46 +0000)]
[USETUP] Move SetDefaultPagefile() into settings.c and remove the now-empty registry.c/.h files.

svn path=/branches/setup_improvements/; revision=75250

8 months ago[USETUP] Move Setup[Delete|Copy|Move]File() from usetup code into the setuplib's...
Hermès Bélusca-Maïto [Fri, 30 Jun 2017 22:28:06 +0000 (22:28 +0000)]
[USETUP] Move Setup[Delete|Copy|Move]File() from usetup code into the setuplib's filesup.c .

Remove the commented-out IsValidPath() in that file, and remove
as well the temporary prototypes in regutil.c .

svn path=/branches/setup_improvements/; revision=75249

8 months ago[USETUP][SETUPLIB] Split the registry helper code.
Hermès Bélusca-Maïto [Fri, 30 Jun 2017 19:07:02 +0000 (19:07 +0000)]
[USETUP][SETUPLIB] Split the registry helper code.

Split the registry helper code into registry utility functions
(create/mount/unmount/verify hives) and registry creation code
(the rest: initializing the system hives) and move it in the
setup library.

svn path=/branches/setup_improvements/; revision=75247

[USETUP][SETUPLIB] Improve how the Setup* INF APIs are interfaced in the code.

Define prototypes compatible (including their calling convention)
with the ones defined by setupapi (.h/.dll) so that it can be possible
to either use an internal implementation of these functions (via the
INFLIB library) as currently being done, or using imported setupapi
functions, as would be done by the future 1st-stage GUI installer.

[SETUPLIB] Cleanup the registry.c file and use the infsupp.h header.

svn path=/branches/setup_improvements/; revision=75345
svn path=/branches/setup_improvements/; revision=75346

[USETUP][SETUPLIB] Move some INF-related code from usetup to the setuplib.

- Move the generic INF_GetDataField() and INF_GetData() helpers to
  setuplib, and rework them a bit so that they explicitly call setupapi
  functions (or implementations thereof when being used in usetup);

- Rework the headers in accordance;
- Fix compilation in lib/registry.c .

- Fix compilation when these headers are used withing usetup (who
  doesn't use setupapi.dll) and "reactos" (the 1st-stage GUI installer
  that uses setupapi.dll).

svn path=/branches/setup_improvements/; revision=75515
svn path=/branches/setup_improvements/; revision=75537
svn path=/branches/setup_improvements/; revision=75538

8 months ago[WIN32SS][NTUSER] Sunken menu item (#981)
Katayama Hirofumi MZ [Fri, 26 Oct 2018 19:20:09 +0000 (04:20 +0900)]
[WIN32SS][NTUSER] Sunken menu item (#981)

CORE-15226

8 months ago[CMAKE] Use configured include files to define the __RELFILE__ hack (#979)
Jérôme Gardou [Fri, 26 Oct 2018 11:47:22 +0000 (13:47 +0200)]
[CMAKE] Use configured include files to define the __RELFILE__ hack (#979)

[CMAKE] Use configured include files to define the __RELFILE__ hack

It's easier on the command line and the eyes looking at it

8 months ago[APITESTS][USER32] Add testcase for SwitchToThisWindow (#980)
Katayama Hirofumi MZ [Fri, 26 Oct 2018 10:56:25 +0000 (19:56 +0900)]
[APITESTS][USER32] Add testcase for SwitchToThisWindow (#980)

Add an API test program for user32!SwitchToThisWindow function.
JIRA issue: CORE-15165

8 months ago[CMAKE] Set CMAKE_OBJCOPY unconditionnally
Jérôme Gardou [Fri, 26 Oct 2018 08:16:26 +0000 (10:16 +0200)]
[CMAKE] Set CMAKE_OBJCOPY unconditionnally

8 months agoAdd Eclipse files to .gitignore
Jérôme Gardou [Tue, 23 Oct 2018 17:18:47 +0000 (19:18 +0200)]
Add Eclipse files to .gitignore

8 months ago[USETUP] NT RTL thread functions use 'NULL' (instead of 'INVALID_HANDLE_VALUE' which...
Hermès Bélusca-Maïto [Wed, 9 Aug 2017 20:43:02 +0000 (20:43 +0000)]
[USETUP] NT RTL thread functions use 'NULL' (instead of 'INVALID_HANDLE_VALUE' which is a Win32 thing) for thread handles that are "invalid" / uninitialized.

svn path=/branches/setup_improvements/; revision=75519

8 months ago[USETUP] Moving around some code.
Hermès Bélusca-Maïto [Fri, 30 Jun 2017 19:02:35 +0000 (19:02 +0000)]
[USETUP] Moving around some code.

- As GetSourcePaths() is used once in USETUP to initialize global
  UNICODE_STRING path strings once, move it out of drivesup.c and
  put it in usetup.c. Then remove drivesup.c : 1 file less!

- Move some INF file prototype declarations out of usetup.h and
  inside inffile.h where they should better be, as inffile.h and .c
  is the glue code for the INF library, defining similar functions
  as the ones in setupapi.dll.

- I rename our local SetupOpenInfFileW() into SetupOpenInfFileExW()
  because the latter one takes an extra user-provided LCID parameter,
  and this is this one that we use in USETUP.

- Make 'UNICODE_STRING SourcePath;' visible only inside usetup.c
  (not used elsewhere).

- Implement installation path validity check in case we are either
  in repair/update, or unattended setup mode. If the path is detected
  as invalid, then we fall back into manual path specification
  (for now...; note that we could instead fail the installation too).

svn path=/branches/setup_improvements/; revision=75246

8 months ago[USETUP] Implement most of the "upgrade" page, where existing NTOS installations...
Hermès Bélusca-Maïto [Thu, 31 May 2018 14:38:06 +0000 (16:38 +0200)]
[USETUP] Implement most of the "upgrade" page, where existing NTOS installations are listed.

- Modify a bit the page flow so that the upgrade page is inserted before
  the Device-settings page, and after the Install-Intro page.

- Insert some extra 'RepairUpdateFlag' checks in SelectPartitionPage() and
  InstallDirectoryPage() to take specific actions in case the flag is TRUE.

svn path=/branches/setup_improvements/; revision=74576
svn path=/branches/setup_improvements/; revision=75525

8 months ago[USETUP] Add an upgrade/repair installation page.
Hermès Bélusca-Maïto [Mon, 15 May 2017 01:48:19 +0000 (01:48 +0000)]
[USETUP] Add an upgrade/repair installation page.

Translators, please update the associated translations!

svn path=/branches/setup_improvements/; revision=74548

8 months ago[USER32] Fix Task Switcher (#976)
Katayama Hirofumi MZ [Thu, 25 Oct 2018 13:59:44 +0000 (22:59 +0900)]
[USER32] Fix Task Switcher (#976)

This fix is needed for the Delphi GUI programs.
- Don't enumerate the windows whose owner window exists.
- Use PostMessage SC_RESTORE instead of ShowWindowAsync SW_RESTORE.
CORE-15165

8 months ago[SDK] Update baseaddresses
Mark Jansen [Thu, 25 Oct 2018 04:59:15 +0000 (06:59 +0200)]
[SDK] Update baseaddresses

8 months ago[USETUP] Use UNICODE_NULL.
Hermès Bélusca-Maïto [Fri, 30 Jun 2017 22:17:18 +0000 (22:17 +0000)]
[USETUP] Use UNICODE_NULL.

svn path=/branches/setup_improvements/; revision=75248

8 months ago[USETUP] More code for updating/repairing the registry. Fix the name of the txtsetup...
Hermès Bélusca-Maïto [Thu, 22 Jun 2017 00:38:32 +0000 (00:38 +0000)]
[USETUP] More code for updating/repairing the registry. Fix the name of the txtsetup.sif section to look for when performing a registry upgrade.

[BOOTDATA] Add needed entries in txtsetup.sif for registry upgrade.

svn path=/branches/setup_improvements/; revision=75162
svn path=/branches/setup_improvements/; revision=75226

8 months ago[USETUP] Mark some variables as 'static'.
Hermès Bélusca-Maïto [Thu, 22 Jun 2017 00:36:29 +0000 (00:36 +0000)]
[USETUP] Mark some variables as 'static'.

svn path=/branches/setup_improvements/; revision=75161

8 months ago[USETUP] Implement work-in-progress code that allows verifying whether registry hives...
Hermès Bélusca-Maïto [Mon, 12 Jun 2017 00:09:16 +0000 (00:09 +0000)]
[USETUP] Implement work-in-progress code that allows verifying whether registry hives validity.

Implement work-in-progress code that, when upgrading an existing
ReactOS installation, verifies whether the (existing) system registry
hives are valid (by loading & unloading them, this allows using the
built-in repair functionality if needed), or not.

If a given hive cannot be repaired successfully, it is backed up
(with a '.brk' extension, "brk" as "broken"), then is marked up for
recreation.

When all hives have been checked, if there are any hive that needs
to be recreated, we recreate its hive file, mount it, but we do *NOT*
mount the other valid existing hives for update. We create instead
dummy registry hives so that we can actually use, as the update code,
the same one as the one used when fully creating the registry hives
for a clean installation (of course, this choice can be improved later on).

The update code (i.e. the same as the registry clean-install one) then
adds the registry keys & values, either putting them in the dummy
registry hives (the ones that we don't want to recreate) or in the
registry hive that is recreated.

At the end, the (re)created registry hives are flushed back to disk,
and a copy of them (under a '.sav' extension) are created, so that they
can be used for restoration purposes if 2nd-stage (and up) goes berserk.

Extra fixes:

- Use the correct structure member field when initializing the
  'InstallDir' variable, when performing an upgrade.

- CreateNestedKey() should be better analysed to see whether it correctly
  creates the full registry path compatible with volatile/non-volatile keys
  (under inspection).

svn path=/branches/setup_improvements/; revision=75010

8 months ago[USETUP] Introduce SetupDeleteFile() and SetupMoveFile() (in addition to the already...
Hermès Bélusca-Maïto [Sun, 11 Jun 2017 23:58:43 +0000 (23:58 +0000)]
[USETUP] Introduce SetupDeleteFile() and SetupMoveFile() (in addition to the already-existing SetupCopyFile()) in order to implement moving / renaming existing files.

Will be used soon to make backups of system files, like the registry hive files just freshly created.
- Make the SetupCopyFile() function closer to its win32 counterpart.
- Adjust the code that calls SetupCopyFile().

svn path=/branches/setup_improvements/; revision=75008
svn path=/branches/setup_improvements/; revision=75009

8 months ago[USETUP] Explicitly use the REG_OPTION_(NON_)VOLATILE flags in NtCreateKey calls.
Hermès Bélusca-Maïto [Sun, 11 Jun 2017 23:47:11 +0000 (23:47 +0000)]
[USETUP] Explicitly use the REG_OPTION_(NON_)VOLATILE flags in NtCreateKey calls.

svn path=/branches/setup_improvements/; revision=75007

8 months ago[USETUP] Implement offline ReactOS registry initialization in USetup (equivalent...
Hermès Bélusca-Maïto [Sat, 3 Jun 2017 16:22:42 +0000 (16:22 +0000)]
[USETUP] Implement offline ReactOS registry initialization in USetup (equivalent of mkhive, but using OS functionality).

The rationale is as follows.

We now have the 1st-stage ReactOS setup running with its own registry SYSTEM hive,
similarly to regular ROS running instances (livecd, regular installation...).

The ReactOS-specific SetInstallPathValue() hack, introduced in a76689e9 (r3794)
and 5f973ce0 (r3795), is removed. This hack told the kernel that, during the setup,
it had to "switch" the used registry hives and instead use the ones of the ROS
installation being prepared.

This was really hackish because this means, mixing between registry settings used only
for the setup running instance, that could use different registry settings
than the ones that should be set for the ROS installation being actually performed.

Also, note that in the case of a 1st-stage GUI setup, consisting in running the
LiveCD + the GUI setup program, this situation would be untenable. Note also that
for people willing to use the Setup*** functions exported by setupapi.dll to parse
the registry INF files to initialize the registry of the ROS installation being
prepared, this would be impossible either.

Hence the need to have offline registry modification functionality.

svn path=/branches/setup_improvements/; revision=74766

8 months ago[USETUP] Code formatting, making also the code closer to mkhive's one. Also, definite...
Hermès Bélusca-Maïto [Sat, 3 Jun 2017 15:20:09 +0000 (15:20 +0000)]
[USETUP] Code formatting, making also the code closer to mkhive's one. Also, definitely remove the SetInstallPathValue() hack.

svn path=/branches/setup_improvements/; revision=74763

8 months ago[CMAKE] Apply patch INF file for the SETUP SYSTEM registry hive that removes the... 561/head
Hermès Bélusca-Maïto [Wed, 24 Oct 2018 22:18:29 +0000 (00:18 +0200)]
[CMAKE] Apply patch INF file for the SETUP SYSTEM registry hive that removes the entries in the Critical Device Database that cause problems with PnP setup during 1st-stage setup.

8 months ago[FREELDR] Adjust WinLdrInitSystemHive() and its callers to load at startup either...
Hermès Bélusca-Maïto [Sat, 3 Jun 2017 14:55:18 +0000 (14:55 +0000)]
[FREELDR] Adjust WinLdrInitSystemHive() and its callers to load at startup either the regular SYSTEM hive, or the SETUPREG.HIV setup system hive.

We now run the 1st-stage setup with a regular system hive, similarly to
what's done for the LiveCD, or for a regular ROS installation.
The ExpInTextModeSetup hacks I previously removed are now completely unneeded.

svn path=/branches/setup_improvements/; revision=74762

8 months ago[FREELDR] Small code re-organization for the "ntldr" sub-module.
Hermès Bélusca-Maïto [Fri, 2 Jun 2017 00:52:36 +0000 (00:52 +0000)]
[FREELDR] Small code re-organization for the "ntldr" sub-module.

Split the "main" winldr.h header into the one containing global code
that actually doesn't really depend on the "windows" NT loader part,
and one that actually concerns code just for the NT Loader.
The latter goes into "ntldr".

svn path=/branches/setup_improvements/; revision=74743

8 months ago[NTOS] Drastically reduce the hackish function CmpGetRegistryPath() for the text...
Hermès Bélusca-Maïto [Thu, 22 Jun 2017 00:46:30 +0000 (00:46 +0000)]
[NTOS] Drastically reduce the hackish function CmpGetRegistryPath() for the text-mode setup case (it should ultimately completely disappear).

svn path=/branches/setup_improvements/; revision=75163

8 months ago[NTOS] Add some DPRINTs in IopLoadServiceModule() and IopOpenRegistryKeyEx() to inves...
Hermès Bélusca-Maïto [Fri, 2 Jun 2017 15:49:12 +0000 (15:49 +0000)]
[NTOS] Add some DPRINTs in IopLoadServiceModule() and IopOpenRegistryKeyEx() to investigate why these 1st-stage text-mode hacks may be, or are (respectively) still needed.

svn path=/branches/setup_improvements/; revision=74748

8 months ago[NTOS] Configuration Manager fixes.
Hermès Bélusca-Maïto [Fri, 2 Jun 2017 15:47:52 +0000 (15:47 +0000)]
[NTOS] Configuration Manager fixes.

- Rework CmpSetSystemValues() and remove its 1st-stage text-mode setup hack, since a real registry hive will be used for 1st-stage either.
- Lock, then unlock the registry in NtInitializeRegistry when initializing the hives & flusher.
- Call CmpInitializeHiveList() (i.e., initialize the other hives like \Software, \User, \.Default) only when we are not in setup-mode.

svn path=/branches/setup_improvements/; revision=74747