Commit graph

85276 commits

Author SHA1 Message Date
Hermès Bélusca-Maïto 1516759445
** WIP ** NOT COMPILABLE - Continue studying volume/partition stuff 2024-03-25 17:11:57 +01:00
Hermès Bélusca-Maïto 04086cd561
MUI extra modifs 2024-03-25 15:48:23 +01:00
Hermès Bélusca-Maïto fa1b829464
** WIP ** Improve handling of MUI/LANGID/... stuff
** WIP ** Continue massaging the MUI stuff AND actually start to remove GENERIC_LIST from the settings.

Some stuff to see:
7af2f717bc/base/setup/usetup/settings.c
8f2c4f7a6d
etc.

** WIP ** Continue with refactoring the settings retrival and limiting usage of GENERIC_LIST.

See commits:
829b0c63d9
67880e7352
(for keyboard layout)

and
e405ad257c
(a commit of mine)
2024-03-25 15:48:15 +01:00
Hermès Bélusca-Maïto e95a45453b
** WIP ** WINLOGON: Study check_setup handling 2024-03-25 15:35:22 +01:00
Hermès Bélusca-Maïto fca6dfcee0
** WIP ** Revamp Welcome and Finish pages 2024-02-27 23:01:37 +01:00
Hermès Bélusca-Maïto be8ec57c98
** WIP ** EVENTLOG: Investigate onLiveCD 2024-02-26 13:02:58 +01:00
Hermès Bélusca-Maïto 02a42b29d9
** WIP ** [NTFS] Investigate why OpenHandleCount underflows to negative values... 2024-02-26 13:02:57 +01:00
Hermès Bélusca-Maïto e685f9df2b
[SETUP:REACTOS] Set the default language and keyboard layout at startup
Retrieve the current ambient language and keyboard layout, that has been
chosen in the "General language and keyboard layout selection" dialog
when starting the LiveCD.
2024-02-26 13:02:33 +01:00
Hermès Bélusca-Maïto e3e12bec81
[NTFS] Typo fix: "Steam" -> "Stream" 2024-02-22 22:42:04 +01:00
Hermès Bélusca-Maïto d21fbb54bd
[WINSRV] Delay-load psapi.dll
Note that it is used only in debug builds in order to display the list
of processes being terminated in the debug log.
2024-02-22 14:20:45 +01:00
Hermès Bélusca-Maïto 89cbab7c50
[WINSRV] Use ARRAYSIZE() instead of hardcoding buffer size in GetProcessImageFileNameW call 2024-02-22 14:20:23 +01:00
Hermès Bélusca-Maïto 9c92e80a9e
[PSAPI] Don't make the dll depend on MSVCRT
psapi.dll can also used by low-level DLLs, such as winsrv.dll,
therefore it is better to reduce its dependencies.
2024-02-22 13:46:27 +01:00
Hermès Bélusca-Maïto d75a562b22
[USETUP] Exchange SetupStartPage and LanguagePage 2024-02-22 12:05:56 +01:00
Hermès Bélusca-Maïto 03539fde77
[SETUPLIB] FindSupportedSystemPartition(): Add missing NULL check
Addendum to commit 59acff79e.
2024-02-21 18:35:29 +01:00
Hermès Bélusca-Maïto cb2302104a
Addendum to some partitioning stuff in REACTOS : Handle the partition size in MB the same way as in USETUP 2024-02-21 18:28:11 +01:00
Hermès Bélusca-Maïto 03e25c4ae8
Addendum to WIP - A ton of untested, build-breaking stuff... 2024-02-21 17:29:44 +01:00
Hermès Bélusca-Maïto 2437ff232f
Merge branch 'gui_setup' into HEAD 2024-02-21 11:42:37 +01:00
Hermès Bélusca-Maïto a6dff09a7c
Merge branch 'all_in_one_bootlivecd_setup' into HEAD 2024-02-21 11:42:26 +01:00
Hermès Bélusca-Maïto ef4dc5d417
GUI setup: Reenable autoreboot for live-testing 2024-02-21 11:34:17 +01:00
Hermès Bélusca-Maïto 16670bdf62
** WIP ** REACTOS: Extra installation fixes
- Correctly reset the progressbar position to zero when starting file copy.
- Add missing file copy error handler in FileCopyCallback -- Just copying what USETUP does.

+ Add bootloader installation
2024-02-21 11:34:16 +01:00
Hermès Bélusca-Maïto 57b3ba0759
** WIP ** Investigate whether it's good to reset the RewritePartition flag once the partition layout has been committed... 2024-02-21 11:34:15 +01:00
Hermès Bélusca-Maïto c559a672e3
Start differentiating between 'new' partition and 'new' volume.
"New" partition: it has been created and added in the cached list, but
not yet actually written into the disk.

"New" volume: newly-created volume (may be backed by a partition or not),
not yet formatted. May exist on either new, or not new partition, or
elsewhere.
2024-02-21 11:34:14 +01:00
Hermès Bélusca-Maïto c9844a5107
Continue improving partitioning in GUI setup
- Now I can reinsert newly-created partitions, or updating the
  unpartitioned space when deleting partitions, in correct order,
  not touching the PartInfo data associated with the tree items
  that aren't related to the items being modified.

- Reliably delete data associated to tree-list items via the
  TVN_DELETEITEM notification.
  This allows also to simplify the cleanup function; keeping simple
  the code that deletes items when deleting partitions, etc.

- Make the PrintPartitionData() function call itself recursively on
  extended partitions to display the sub-list of logical partitions.
  This also keeps the creation-partition code simple.
2024-02-21 11:34:13 +01:00
Hermès Bélusca-Maïto d56c1ecf44
** WIP ** A ton of untested, build-breaking stuff is being cooked on in there...
Some more work on the partition list iteration

** WIP ** Several fundamental changes in partition list, iterators, and start splitting the FS volume-specific operations into its own file.

The splitting of FS volume-specific functions has been motivated by
what has been started in diskpart.
2024-02-21 11:34:12 +01:00
Hermès Bélusca-Maïto 2c8ebee45f
[SETUP:REACTOS] W.I.P. more partitioning support. 2024-02-21 11:33:52 +01:00
Hermès Bélusca-Maïto 2569527995
WIP - [SETUPLIB][USETUP] Isolate and decouple the filesystem volume operations code from the UI.
The idea is similar to the SetupCommitFileQueue() function:
filesystem volume operations are "queued" and processed via a
"commit queue", that uses a user-specified callback. This latter
one is used to e.g. display appropriate UI screens, etc.
2024-02-21 11:31:40 +01:00
Hermès Bélusca-Maïto 6cc2d3d2d5
[SETUP:REACTOS] Redesign the "Advanced Installation Options" dialog.
In particular, use now a dynamic combo-box for listing the possible
locations where the bootloader can be installed.
2024-02-21 11:30:55 +01:00
Hermès Bélusca-Maïto eecc9ea974
[SETUP:REACTOS] Start to plug the update-registry code in.
This code has been tested on Windows and works as expected.
2024-02-20 22:29:41 +01:00
Hermès Bélusca-Maïto efb02d33bb
[SETUP:REACTOS] Collect some UI elements into a common UI_CONTEXT structure.
Handles to some install-page UI elements, used in the installation thread,
are collected into a UI_CONTEXT structure.
2024-02-20 22:27:58 +01:00
Hermès Bélusca-Maïto 4e4cfb7e8b
Move add_pch around 2024-02-20 17:00:15 +01:00
Hermès Bélusca-Maïto cf3b3ed8dd
Temp - resource modifs 2024-02-20 17:00:14 +01:00
Hermès Bélusca-Maïto 5ed16bddea
** WIP ** Make it start again 2024-02-20 17:00:13 +01:00
Hermès Bélusca-Maïto 2e9f8a3538
[SETUP:REACTOS] treelist.h: Define few useful types. 2024-02-20 17:00:12 +01:00
Hermès Bélusca-Maïto 613d5ae9a0
[SETUPLIB] Move the initialization of other default values into InitializeSetup() 2024-02-20 17:00:11 +01:00
Hermès Bélusca-Maïto 293fd968aa
[SETUPLIB][BOOTDATA] Rename "MBRInstallType" to "BootLoaderLocation"
Less hardcoded references to "MBR" for code that should be generic
is always better.
2024-02-20 17:00:10 +01:00
Hermès Bélusca-Maïto 3c814f786a
[KMTESTS] Fix MSVC build. 2024-02-20 17:00:09 +01:00
Hermès Bélusca-Maïto f5b3e5e956
**** DO NOT COMMIT!! -- Temp VBoxDbg bootcd **** 2024-02-20 17:00:08 +01:00
Hermès Bélusca-Maïto a77b69cc44
[REACTOS] Introduce the experimental all-in-one ReactOS BootCD
It contains both the text-mode 1st-stage installer and the LiveCD
functionality with the 1st-stage GUI installer.
Our separate LiveCD ISOs become obsolete, and this completely remove
the need for the so-called "hybridcd" ISO.

Some details:

- the "hybridcd" build target is completely removed, since now the new
  BootCD *is* basically what we used to call "hybridcd";

- the "livecd" build target is kept so far (to minimize the code changes),
  but internally I start to refer to it as "LiveImage", and it is reduced
  to a minimum: currently a minimal non-bootable "liveimage.iso" is built
  in order to implement the "ReactOS Live in RAMDISK" functionality
  (we currently don't support other file formats apart from ISO and
  flat disk for a RAMDISK), while the "ReactOS Live" (non-RAMDISK) is
  implemented by adding to the BootCD file tree the files from the LiveImage.
  These files add two root directories, "Profiles" and "reactos" (which is
  the SystemRoot for the non-ramdisk LiveImage).

- The minimal text-mode ReactOS installation used during the 1st-stage
  text-mode installer, including USETUP itself and the executable for
  the 1st-stage GUI installer and the reactos.cab (installation source)
  are moved to the root directory called "i386" (ideally, one directory
  per architecture).

- the "bootcdregtest" target, i.e. the ISOs we feed our testbots with,
  are left untouched, i.e. they are only constituted of the 1st-stage
  text-mode installation, in the root directory named "reactos".

More details will be presented in a subsequent mail to the ros-dev mailing list.

svn path=/branches/setup_improvements/; revision=75273
2024-02-20 16:56:45 +01:00
Hermès Bélusca-Maïto be52cb7d7c
** WIP ** SETUPAPI: Improve do_file_copyW: Generate a temporary file path based on the target path (thus, ensured to be writable)
Needed because we may run setupapi to extract and copy files to a
writable target directory, from a read-only ReactOS installation
(e.g. livecd)
2024-02-20 16:43:27 +01:00
Hermès Bélusca-Maïto bbf6c45279
[SETUPAPI] Slightly improve pSetupGetFileTitle
- Make the function return a pointer to const string.
- Skip any drive path if any, looking for ':' just once.
2024-02-20 16:43:26 +01:00
Hermès Bélusca-Maïto e8b454a92e
[SETUPAPI] .spec file: Add NT6+ stubs and -version info for some functions.
Note that the exports are sorted by _ordinal_ and not by name, for
compatibility with Windows' setupapi.dll.

Cross-checked with:
- https://abi-laboratory.pro/compatibility/Windows_5.0_to_Windows_6.0/x86_64/compat_reports/setupapi.dll/abi_compat_report.html
- http://redplait.blogspot.com/2010/11/setupapidll-exports.html
- https://blog.airesoft.co.uk/apichanges/changes-Vista%20SP2-To-7%20SP0.xml#setupapi.dll
- https://blog.airesoft.co.uk/apichanges/changes-7%20SP1-To-8%20SP0.xml#setupapi.dll
- https://blog.airesoft.co.uk/apichanges/changes-8%20SP0-To-8.1.xml#setupapi.dll
- https://windows10dll.nirsoft.net/setupapi_dll.html

and manually with setupapi.dll from Win2k3, Vista, Windows 7 and 10.
2024-02-20 16:41:24 +01:00
Hermès Bélusca-Maïto 30921965be
[SETUPAPI] Add missing NULL parameter checks in SetupOpenInfFileW and SetupDiGetINFClassW.
Based on PR #5673, ROSTESTS-388

Co-authored-by: Katayama Hirofumi MZ <katayama.hirofumi.mz@gmail.com>
2024-02-20 16:41:23 +01:00
Hermès Bélusca-Maïto febda67eff
[SETUPAPI] diskspace.c: Fix memory allocations.
- The allocated file element should use the CRT allocator, as it is how
  it gets freed in SetupDestroyDiskSpaceList (and SetupDuplicateDiskSpaceListW)

- GetFullPathNameW() takes the buffer size in number of characters, not
  in bytes.

Fix for wine-staging commit:
setupapi: Implement SetupAddToDiskSpaceList.
wine-staging patch by Michael Müller <michael@fds-team.de>
2024-02-20 16:41:22 +01:00
winesync a04b28e92c
[WINESYNC]: setupapi is partially in sync, and setupapi_winetest is in sync with wine-staging wine-8.15
- dialog.c
- dirid.c
- diskspace.c
- parser.c
- query.c
- queue.c
- setupcab.c
- stringtable_wine.c
- setupapi_winetest
2024-02-20 16:41:21 +01:00
winesync c8be1ae834
[WINESYNC] setupapi: Implement SetupAddInstallSectionToDiskSpaceList.
wine-staging patch by Michael Müller <michael@fds-team.de>
2024-02-20 16:41:19 +01:00
winesync dd0c4303a2
[WINESYNC] setupapi: ImplementSetupAddSectionToDiskSpaceList.
wine-staging patch by Michael Müller <michael@fds-team.de>
2024-02-20 16:41:18 +01:00
winesync 29c1323f00
[WINESYNC] setupapi: Ignore deletion of added files in SetupAddToDiskSpaceList.
wine-staging patch by Michael Müller <michael@fds-team.de>
2024-02-20 16:41:17 +01:00
winesync 3ad50272d5
[WINESYNC] setupapi: Implement SetupQueryDrivesInDiskSpaceList.
wine-staging patch by Michael Müller <michael@fds-team.de>

+ Add the .spec exports.

Co-authored-by: Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
2024-02-20 16:41:16 +01:00
winesync 492011e956
[WINESYNC] setupapi: Implement SetupAddToDiskSpaceList.
wine-staging patch by Michael Müller <michael@fds-team.de>
2024-02-20 16:41:15 +01:00
winesync 4ab556830d
[WINESYNC] setupapi: Rewrite DiskSpaceList logic using lists.
wine-staging patch by Michael Müller <michael@fds-team.de>
2024-02-20 16:41:14 +01:00