Commit Graph

88728 Commits

Author SHA1 Message Date
Hermès Bélusca-Maïto
4dbbeeaedd [0.4.16][BOOTDATA] Hide the Internet desktop icon in the Live environment (#9046)
CORE-19203

This is a cherry-pick of 74a0ac0251.
2026-05-22 07:35:41 -05:00
Hermès Bélusca-Maïto
65eeb24386 [0.4.16][SHELL32] Better determine whether to hide or show shell-folder namespace items (#9046)
In `SHELL32_IsShellFolderNamespaceItemHidden()`, use `SHRegGetBoolUSValue()`
to look at both `HKEY_CURRENT_USER` with fallback to `HKEY_LOCAL_MACHINE`,
when searching for the registry value that determines whether a shell-folder
namespace item is to be hidden or shown.

Behaviour confirmed on Windows 2003.

Addendum to commit 6ae11ba09d (PR #7189).

This is a cherry-pick of 9342ed43d9.
2026-05-22 07:35:41 -05:00
Timo Kreuzer
979e8ed5dc [0.4.16][KERNEL32_APITEST] Update tests to reflect ReactOS behavior
This is a cherry-pick of 865ed62ef1.
2026-05-22 07:35:41 -05:00
Timo Kreuzer
d61e7f5340 [0.4.16][KERNEL32] Check for NULL lpBytesReturned
Add NULL check for lpBytesReturned to match Windows 8+ behavior, which Wine code relies on.

This is a cherry-pick of e1e3b8aa3d.
2026-05-22 07:35:40 -05:00
Timo Kreuzer
9aaff290a2 [0.4.16][KERNEL32_APITEST] Add a test for NULL lpBytesReturned
This is a cherry-pick of 6ef4ddb83d.
2026-05-22 07:35:40 -05:00
Timo Kreuzer
a3e86da4cb [0.4.16][KERNEL32] Improve/fix ReadFile/WriteFile
- Add SAL2 annotations
- Initialize Iosb, otherwise the function will return uninitialized data on failure
- Add NULL check for lpNumberOfBytesWritten/lpNumberOfBytesRead to match Windows 8+ behavior, which Wine code relies on.

See CORE-20559 and CORE-17376

This is a cherry-pick of 72bfa0c88b.
2026-05-22 07:35:40 -05:00
Timo Kreuzer
2cf72925c7 [0.4.16][KERNEL32_APITEST] Add tests for ReadFile and WriteFIle
This is a cherry-pick of b8bf0089de.
2026-05-22 07:35:40 -05:00
Timo Kreuzer
22b6fc8d00 [0.4.16][RTL][NTDLL][KERNEL32] Implement (Rtl)GetProductInfo
This is a cherry-pick of 15fa25299f.
2026-05-22 07:35:40 -05:00
Timo Kreuzer
344ca7c795 [0.4.16][NTDLL_APITEST] Add a test for RtlGetProductInfo
This is a cherry-pick of 50985d9702.
2026-05-22 07:35:40 -05:00
Timo Kreuzer
980f04ec6d [0.4.16][XDK] Add missing PRODUCT_* definitions
This is a cherry-pick of 11ab9c2717.
2026-05-22 07:35:40 -05:00
Whindmar Saksit
e66837ba84 [0.4.16][INCLUDE/WINE] Don't use DECLSPEC_IMPORT in shlwapi.h (#9034)
This fixes wscript.exe crashing on .wsf files because of delay-loaded shlwapi, the bug was introduced in  6762703 (PR #8419)

This is a cherry-pick of 879e1cff63.
2026-05-21 19:51:35 -05:00
Katayama Hirofumi MZ
e3f75df0cb [0.4.16][REACTOS] Add WS_TABSTOP to IDD_SUMMARYPAGE IDC_CONFIRM_INSTALL (#9014)
Due to resource compiler (windres)'s
bug, WS_TABSTOP style wasn't added
to IDC_CONFIRM_INSTALL checkbox
(I've confirmed WS_TABSTOP lackness
on reactos.exe with Resource Hacker
and RisohEditor). This PR will improve
keyboard usability.
JIRA issue: N/A
- Add WS_TABSTOP style to
  IDC_CONFIRM_INSTALL checkbox
  in IDD_SUMMARYPAGE resource
  dialog.

This is a cherry-pick of 99252d7f94.
2026-05-21 19:51:35 -05:00
Hermès Bélusca-Maïto
289dc58589 [0.4.16][BOOTDATA] Add an "Install ReactOS" shortcut to the Live environment desktop
The shortcut spawns CMD.EXE in the background and runs a specific
command-line that determines where the reactos.exe installer is:

  cmd.exe /D /E:ON /C "start %SystemDrive%\%PROCESSOR_ARCHITECTURE:x86=I386%\reactos.exe"

An alternative could be:

  cmd.exe /D /C "for /F %f in ('"if %PROCESSOR_ARCHITECTURE%==x86 (echo I386) else (echo %PROCESSOR_ARCHITECTURE%)"') do start %SystemDrive%\%f\reactos.exe"

(In this second case an exact value comparison is made, contrary
to the first case where all instances of "x86" would be replaced.)

The reason for using CMD.EXE, is that the `PROCESSOR_ARCHITECTURE`
environment variable contains the "almost" correct value for the
architecture directory name where reactos.exe can be found, except
for the x86 case where `PROCESSOR_ARCHITECTURE` is set to "x86"
(as on Windows) but the directory is named "I386" (as on Windows again).

This is a cherry-pick of 85f2a67a9e.
2026-05-21 19:51:35 -05:00
Hermès Bélusca-Maïto
49916b0564 [0.4.16][BOOTDATA] Improve the environment-variables hack to keep them unexpanded when building on Windows
The environment variables used by some shell links for the Live-environment,
are passed as data by CMake on the MKSHELLLINK build tool command-line.
When building on Windows, they are transmitted to the tool via CMD.EXE,
and we have somehow to force CMD.EXE to keep these variables unexpanded.

Depending on the precise context where these variables are being used,
either use an "escaped" format with `^%`, as in: `^%SystemRoot^%` ,
or, surround the variable name with `^` instead: `%^SystemRoot^%` .
This second form appears to work when the variable is specified within
a quoted sub-string given to the CMD.EXE command-line.

Addendum to commit a46e1e96ec.

This is a cherry-pick of 8eea7255fd.
2026-05-21 19:51:35 -05:00
Hermès Bélusca-Maïto
507f7799be [0.4.16][BOOTDATA] Simplify add_livecd_shortcut() parameters handling
Only handle `DESTINATION`, and transfer all the other parameters verbatim to `add_link()`.
Addendum to commits 3a3b16af0d, 8cb3980766, and a46e1e96ec (PR #8936).

This is a cherry-pick of f9effd17bc.
2026-05-21 19:51:35 -05:00
Hermès Bélusca-Maïto
52c31d32e8 [0.4.16][USERINIT] In LiveCD/"MiniNT" mode, start the shell with a suitable environment block
Using `userenv!CreateEnvironmentBlock()` when starting the shell ensures
that, even if it's started as LocalSystem, its environment inherits the
"dynamical" environment variables created by SMSS at runtime (stored in
`HKLM\SYSTEM\CurrentControlSet\Session Manager\Environment`).

In ReactOS/Windows PE "MiniNT" mode, the Winlogon environment doesn't
contain these values, and doesn't start the Setup with this augmented
environment. (This is compatible with what Windows does, on WinPE or
during a clean installation.)
Winlogon creates an augmented environment only when a user logs in and
starts its shell (standard boot), which isn't the case in "MiniNT" mode.
It is thus the responsibility of the module that starts the shell instead
to do it: in ReactOS' case, userinit.exe in LiveCD mode.

As a result, we get access to the `COMPUTERNAME`, `NUMBER_OF_PROCESSORS`,
`OS`, and `PROCESSOR_*` environment variables, amongst others.

This is a cherry-pick of eec8c97708.
2026-05-21 19:51:35 -05:00
Hermès Bélusca-Maïto
f562037bf0 [0.4.16][USERINIT] Minor nits for StartShell() and friends; remove shell32 dependency
This is a cherry-pick of 9f5b0f1761.
2026-05-21 19:51:35 -05:00
Hermès Bélusca-Maïto
c252ec834e [0.4.16][BOOTDATA] Explicitly add "Profiles/Default User/My Documents" to the LiveImage (#8936)
CORE-19691

Removing the `livecd_start.cmd` entry also caused the "Profiles/Default User/My Documents"
directory to not be created in the LiveImage. When booting it, this
caused explorer.exe to hang while loading the desktop, for **some**
(but not all) non-english environments.
(Technically it should instead ignore the non-existing directory if it
cannot create or open it, or drop an error then continue execution...
But that's another bug for another time!)

Adding back the creation of this directory fixes the hang.

This is a cherry-pick of 9761df14f0.
2026-05-21 19:51:35 -05:00
Hermès Bélusca-Maïto
5f890aae5e [0.4.16][BOOTDATA][CMAKE][MKSHELLLINK] Improve shell link shortcuts creation for the LiveImage (#8936)
CORE-15156, CORE-19691, CORE-19692

Finally get rid of the livecd_start.cmd hack introduced waaaay back
in commit ff6d7b0236 (r54514)!
See also commits ea682b6909 (r54512) and 71867403fd (r54513).

For target paths, use the shell "special shell folder" syntax:
`shell:windows\...` or `shell:system\...`, introduced in commit
7b081be46d (PR #7158) by Whindmar Saksit.

Specify an explicit icon path and index for the "Read Me.lnk" shortcut.

Includes ideas from PR #7154 by Katayama Hirofumi MZ.

The generated shell links are confirmed to work on ReactOS, but also on
Windows 2003 and Windows 7.

- Change the MKSHELLLINK icon parameter syntax to be: `-i [icon_path[,nr]]`
  where, either both `icon_path` and icon index are given, separated by
  a comma ',' , or, either the `icon_path` is given but the index is
  optional (default: 0), or, only the icon index is given, in which case
  the icon path is set to the target instead.

- Use a `VERBATIM` command-line for `add_custom_command()`, so that *nix
  builds can cope with parameters containing backslashes.

- The shortcut target path, working directory, command-line arguments,
  and icon path all may specify explicit Win32 environment variables
  (like `%SystemRoot%`, `%HOMEDRIVE%`, etc.). Because these environment
  variables are specified as data given to the build tool via CMake,
  **AND** we have to workaround keeping these variables unexpanded when
  they are transmitted to the tool via CMD.EXE (on builds made on Windows),
  specify these variables in an "escaped" format, using `^%` instead:
  `^%SystemRoot^%`, etc.
  Additionally these paths may be explicitly quoted and passed that way
  to the MKSHELLLINK tool.

  In order to deal with both unquoting the strings and unescaping the
  environment variables, introduce a helper function and invoke them on
  the aforementioned strings.

This is a cherry-pick of a46e1e96ec.
2026-05-21 19:51:35 -05:00
Hermès Bélusca-Maïto
69e0a92342 [0.4.16][MKSHELLLINK] Add a verbose mode for diagnostics, disabled by default (#8936)
This is a cherry-pick of bc70254ad9.
2026-05-21 19:51:35 -05:00
Hermès Bélusca-Maïto
28065b7cee [0.4.16][MKSHELLLINK] Support link target and icon paths containing environment variables (#8936)
CORE-15156, CORE-19691, CORE-19692

- When specifying a "special shell folder" in the shortcut target,
  e.g.: `shell:windows\system32\cmd.exe` , or: `shell:system\cmd.exe`,
  resolve it using a ReactOS-specific path, but also use a version
  using unexpanded environment variables: for both examples,
  `%SystemRoot%\system32\cmd.exe`

- Whenever the shortcut target or the icon path contains unexpanded
  environment variables, add associated `EXP_SZ_LINK` data blocks.

- Use the previously-introduced ANSI-to-UTF16 `my_mbstowcs()` routine
  to convert the ANSI strings to Unicode for the `EXP_SZ_LINK` data blocks.

This is a cherry-pick af0cb55edb.
2026-05-21 19:51:35 -05:00
Hermès Bélusca-Maïto
42528d364e [0.4.16][MKSHELLLINK] Support creating Unicode-aware shortcuts (#8936)
Support the creation of shortcuts that can use Unicode versions of
their name (description), relative path, working directory, command-
line arguments, and icon location.
This option can be selected at runtime with a switch.

Additionally:

- Ensure that `wchar_t` is 16-bit wide.

- Introduce and use a "poor-man" ANSI-to-UTF16LE `my_mbstowcs()` routine
  to convert the ANSI strings, for the Unicode scenario mentioned above.
  We cannot use the host mbstowcs() routine, since on *nix systems the
  iconv library being used may have been compiled with a 32-bit `wchar_t`
  (even if the tool is compiled with: `-fshort-wchar -fwide-exec-charset=UTF-16LE`),
  as this is the case with the GitHub actions build bots.

This is a cherry-pick of e505a8dbaa.
2026-05-21 19:51:34 -05:00
Hermès Bélusca-Maïto
84699b4f91 [0.4.16][MKSHELLLINK] Don't care about the DOS name of PIDL path elements (#8936)
Keep the old code just for reference purposes.

This is a cherry-pick of b36fd06b70.
2026-05-21 19:51:34 -05:00
Hermès Bélusca-Maïto
05e26ee757 [0.4.16][MKSHELLLINK] Fix a bug in the special shell folder handling code (#8936)
Addendum to commit 7b081be46d (PR #7158).

CORE-15156, CORE-19691, CORE-19692

Since commit 7b081be46d (PR #7158), one can create shell links that
point to a file in a subdirectory of SystemRoot (e.g. X:\reactos) or
SystemRoot\system32 using a shell "special shell folder" syntax, for
example:
  `shell:windows\Readme.txt` (--> X:\reactos\Readme.txt) ,
  `shell:windows\system32\cmd.exe` , or:
  `shell:system\cmd.exe` (--> X:\reactos\system32\cmd.exe) .

An `EXP_SPECIAL_FOLDER` data block allows parts of a shortcuts pidl
to be overridden by such a special folder.

- In these cases, try to build the shortcut pidl such that it faithfully
  mirrors the intended path. For example, when using `shell:system\cmd.exe`,
  resolve the `shell:system` part to `X:\reactos\system32` instead of
  just `X:\reactos` ; this helps understanding what happens when
  spelunking into such a shell link. This also helps when converting
  such a path to one containing unexpanded environment variables, for
  the purposes of making the Windows explorer shell show the correct
  shortcut target path, or resolve it independently of the SystemRoot
  being used; and, to be able to use the path for the shortcut icon.

- Get rid of the `index`/`specialindex` variables.
  These were used for making the `EXP_SPECIAL_FOLDER` data block point
  to the correct path suffix part that follows the special path prefix
  in the ID list.

  Hardcoding its value caused problems when the special path prefix is
  made to contain more path elements than just "X:\reactos". For example,
  "X:\reactos\system32" in the case of the `shell:system` prefix.
  Instead, retrieve the length of the special path prefix, then, compare
  it with the length of the path elements being parsed in the loop.

  ----

  This problem was made explicit when the the following code path is run:
  ```
  shell32!CShellLink.cpp:CShellLink::Load(IStream *stm)
  --> ILCombine(folder, m_pPidl + pSpecial->cbOffset)
  ```

This is a cherry-pick of d6f4c0887a.
2026-05-21 19:51:34 -05:00
Hermès Bélusca-Maïto
b7923c8418 [0.4.16][MKSHELLLINK] Enhance the code (#8936)
- Use the `bool` type from `stdbool.h`

- Update "Specification" URL, using instead the
  "[MS-SHLLINK]: Shell Link (.LNK) Binary File Format"

- Document which structures in `undocshell.h` correspond to those
  in MKSHELLLINK.

- Add `SLDF_*` constants from PSDK `shlobj.h` for consumption, and
  alias the tool-specific `LINK_*` ones to these.

- The first member of the `LNK_HEADER`/`SHELL_LINK_HEADER` structure
  is not a signature, but its size.
  Fix the `FILETIME` fields ordering. The `IconIndex` member is signed.
  The `HotKey` member is a 16-bits value.

- The third member of the `ID_LIST_GUID`/`tagGUIDStruct` structure is
  not "dummy", but is a sort-order. Add also some known corresponding
  values, and unhardcode the value used in the code.

- Make the `is_path_separator()` return a `bool`, and use the helper
  more thoroughly in the code.

- Improve the help/usage text shown by the tool.

- In case an invalid/unknown argument is encountered, set the `bHelp`
  flag just after showing the error, so as to display the tool usage
  and bail out early.

- Improve/clarify some code comments.

- Update the file header notice.

This is a cherry-pick of 55092de280.
2026-05-21 19:51:34 -05:00
Hermès Bélusca-Maïto
2abbd73445 [0.4.16][BOOTDATA] CMakeLists.txt: Reorganize a bit the add_livecd_shortcut() invocations (#8936)
- Use variables to define and hold the on-disk shortcuts destination
  directories (the "Profiles/All Users/..."), and use these variables
  in the `add_livecd_shortcut()` calls; this allows shortening the
  corresponding lines.

- There are currently two shortcuts: "Command Prompt" and "ReactOS
  Explorer", that are added to more than one destination.
  Previously, we had to invoke `add_livecd_shortcut()` for each
  destination. However, each invocation recreated the _**same**_
  shortcut file (with the same .lnk file name) in the build directory.

  To solve this, the `dest` parameter of the `add_livecd_shortcut()`
  function, is replaced by a `DESTINATION` keyword, whose value is
  a list of one or more destination directories, where the shortcut
  should be added.

This is a cherry-pick of 8cb3980766.
2026-05-21 19:51:34 -05:00
Hermès Bélusca-Maïto
deeae5db00 [0.4.16][BOOTDATA][CMAKE] Improve the add_livecd_shortcut/add_link helpers (#8936)
CMakeLists.txt: `add_livecd_shortcut()`:

Turn the macro into a function. Instead of keeping a `LIVECD_SHORTCUTS`
global-scope list variable, just define a `livecd_links` custom target
as initially empty, then, using `set_property()`, directly append to it
its "SOURCES" i.e. generated .lnk files.
(This is equivalent to using `target_sources(livecd_links PRIVATE ...)`
only in CMake 3.20+ for the custom target.)

CMakeMacros.cmake: `add_link()`:

- Since both `name` and `path` parameters are mandatory, make them
  explicit in the function declaration instead of defining them as
  "optional" parameters.

- Remove the `set_source_files_properties(... PROPERTIES GENERATED TRUE)`
  invocation that followed the `add_custom_command(...)` call, since,
  per the documentation[^1],
  "Each output file will be marked with the `GENERATED` source file
  property automatically." (Since CMake 3.2 at least.)

[^1]: https://cmake.org/cmake/help/v3.17/command/add_custom_command.html

This is a cherry-pick of 3a3b16af0d.
2026-05-21 19:51:34 -05:00
Hermès Bélusca-Maïto
8245ab8eca [0.4.16][SYSSETUP] Revamp the Finish page, adapted from the 1st-stage setup
Also, disable the "Back" button for the Welcome and Install processing pages.

This is a cherry-pick of a4b6fe9.
2026-05-21 19:51:34 -05:00
Hermès Bélusca-Maïto
2a33191451 [0.4.16][SYSSETUP] Fix some wizard pages
- Remove hardcoded FONT resource attributes (fallback to defaults).

- Unify per-language CAPTIONs of wizard pages.

- Unify the Welcome page title control sizes with those of
  the Finish page and what's used in the 1st-stage GUI setup.
  Unify these also across translations.

This is a cherry-pick of fe4ea0d.
2026-05-21 19:51:34 -05:00
Hermès Bélusca-Maïto
4b33a7c67d [0.4.16][SETUP:REACTOS] GUI setup: Revamp the Finish/Reboot page; re-enable auto-reboot
Add also an Abort page that is displayed when the user cancels the
1st-stage setup, or when an error occurs and installation is aborted.

- Rewrite the text, change the layout;

- When the installer is started without any Win32 shell, or the
  installation is running in unattended mode, the Finish/Abort
  pages only offer to restart the computer with a 15-second timeout
  countdown.
  If the user has opened programs with interactive windows in the
  meantime, the timeout countdown just pauses whenever the installer
  window is de-activated/unfocused; it restarts when the window is
  re-activated. (This currently doesn't work in ReactOS due to a bug
  in the `WM_ACTIVATE` message delivery.)

  If, on the contrary, the installer is started by the user when a
  Win32 shell is running, the Finish/Abort page offers to either restart
  the computer "now", or postpone the restart to later (when the user
  manually restarts the computer); no reboot countdown is present there.

- Disable/hide the "Back" button for the Install processing page.

This is a cherry-pick of 51c3209.
2026-05-21 19:51:34 -05:00
Hermès Bélusca-Maïto
6da4dd4f20 [0.4.16][SETUP:REACTOS] Improve the DisplayMessageV, SetWindowResTextW, and SetWindowResPrintfVW helpers
- In `SetWindowResTextW()` and `SetWindowResPrintfVW()`, don't assume a
  fixed size of 256 characters max for the retrieved resource strings,
  but allocate a suitably-sized buffer IF the resource string is longer
  than the fixed buffer. (Use the fixed buffer only if the string is shorter.)

- Introduce two helpers `LoadAllocStringW()` and `FormatAllocStringWV()`,
  based on existing code from `DisplayMessageV()`, and use these for
  `DisplayMessageV()`, `SetWindowResTextW()`, and `SetWindowResPrintfVW()`.

This is a cherry-pick of 310724e.
2026-05-21 19:51:34 -05:00
Hermès Bélusca-Maïto
0b2b264d88 [0.4.16][SETUP:REACTOS] Fix some translations
- Add missing translations in the Hindi file for:
  `IDD_UPDATEREPAIRPAGE` and `IDD_SUMMARYPAGE` dialogs,
  and `IDS_INSTALLATION_*` and `IDS_PARTITION_*` strings.
  Addendum to commit f5960cea70 (PR #951).

- Update some sentences in the `IDD_UPDATEREPAIRPAGE` dialog.

- Harmonize the length of the `IDD_DEVICEPAGE` dialog comboboxes
  amongst all the translations.

This is a cherry-pick of 630369f
2026-05-21 19:51:34 -05:00
Hermès Bélusca-Maïto
c8d0ee700e [0.4.16][BOOT] Remove last instances of "hybridcd"
Addendum to commit b2e33f26eb (PR #7313)

This is a cherry-pick of 8fa6679b9f.
2026-05-21 19:51:34 -05:00
Carl J. Bialorucki
9d7280f404 [0.4.16][BOOTDATA] Add commented out block for setting visual style
This is a cherry pick of commit c03dd1ba75.
2026-05-21 19:51:34 -05:00
Carl J. Bialorucki
88d67c1a9a [0.4.16][BOOTDATA] Add unattend.inf to livecd target
Needed for 0.4.16 release to set a default visual style

This is a cherry-pick of commit 548f0740df
2026-05-21 19:51:34 -05:00
Hermès Bélusca-Maïto
6a5adea47c [0.4.16][BOOTDATA] Shorten the debug-enabled boot entry labels
This is a cherry-pick of 5a8039fe51.
2026-05-21 19:51:34 -05:00
Hermès Bélusca-Maïto
1843948732 [0.4.16][FREELDR] Reset BootType before reading its value in the freeldr.ini OS section, if it exists
Because if the value doesn't exist in the OS section, the value isn't
reset and the code would reuse a stray one that was for the previous entry.

This is a cherry-pick of 81752ca211.
2026-05-21 19:51:34 -05:00
Hermès Bélusca-Maïto
79b7e3d061 [0.4.16][FREELDR] Consider an unkeyed OS entry in freeldr.ini to be a menu separator
This is a cherry-pick of 45aa3c2a17.
2026-05-21 19:51:34 -05:00
Hermès Bélusca-Maïto
14edc8cc91 [0.4.16][FREELDR:UEFI] uefidisk.c: Remove stray global variable
Addendum to commit 1fd9d11f16 (PR #5219)

This is a cherry-pick of 68312dedbe.
2026-05-21 19:51:34 -05:00
Hermès Bélusca-Maïto
7453a93256 [0.4.16][FREELDR] peloader.c: Minor nits
This is a cherry-pick of 07f36b52aa.
2026-05-21 19:51:34 -05:00
Hermès Bélusca-Maïto
7636092b7e [0.4.16][MEDIA] shortcuts.inf: The Accessibility shortcuts don't require a working directory
Addendum to commit ef268d1301 (r73577).

Magnify, OSK, and UtilMan shortcuts don't require a working directory
`%HOMEDRIVE%%HOMEPATH%`, since they don't access or save files into the
current user's directory. (And most of the time they run under the SYSTEM
account, for which neither the `%HOMEDRIVE%` nor `%HOMEPATH%` environment
variables exist.)

While it's true these shortcuts on Windows XP/2003 have their working
directory set to these values, on Windows 7+ at least this isn't the
case anymore.

This is a cherry-pick of 6e47921c5c.
2026-05-21 19:51:33 -05:00
Doug Lyons
b16e0454ac [0.4.16][HALX86:DMA] Improve limitation of Scatter/Gather memory allocation (#8910)
CORE-20565

Estimate DMA memory needed staying conservative and use this for memory allocation.
This fixes a regression caused by [5418987](https://github.com/reactos/reactos/commit/5418987)
2026-05-04 20:39:31 -05:00
Carl J. Bialorucki
51bfc70373 [0.4.16] Branch releases/0.4.16 and clear KERNEL_VERSION_BUILD_TYPE 0.4.16 2026-04-28 20:39:27 -05:00
Hermès Bélusca-Maïto
bac97c58e2 [FREELDR] Rework the contents of the FreeLoader setup, custom-boot, and NT advanced boot options menus
- Make the menu contents more dynamic; inspired by PR #8871 by Ahmed Arif.

- advopts.c: Double-relicense ntldropts.c/h to GPL-2.0-or-later or MIT,
  as most of the code in this file has been rewritten for years now.

- options.c (FreeLoader setup options menu):
  Double-relicense options.c/h to GPL-2.0-or-later or MIT, as most
  of the code in this file has been rewritten since commit 9ff4e4b9ef.
2026-04-28 23:23:25 +02:00
Hermès Bélusca-Maïto
925d227faa [FREELDR:NTLDR] Move NtLdrUpdateLoadOptions() to ntldropts.c and rename it to NtLdrUpdateOptions()
Also:
- Update SAL annotations to SAL2;
- Double-relicense ntldropts.c/h to GPL-2.0-or-later or MIT.
2026-04-28 23:23:24 +02:00
Hermès Bélusca-Maïto
b2e33f26eb [REACTOS] Merge our bootcd and livecd into an all-in-one ReactOS BootCD (#7313)
CORE-9069, CORE-13525, RELEASE-11

This new BootCD contains the functionality of both the original bootcd
(text-mode 1st-stage installer) and the livecd (that will include the
1st-stage GUI installer later).
Our separate livecd ISOs become obsolete, and this completely removes
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 is reduced
  to a minimum.

  A minimal non-bootable "liveimg.iso" is built (but currently not
  included within the BootCD). Its purpose will be to implement the
  "ReactOS Live" functionality as a RAMDISK.
  (We currently don't support other file formats apart from ISO and
  flat disk for a RAMDISK).

  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 for the 1st-stage
  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 only, but placed in a per-architecture root
  directory ("i386", etc. as for the bootcd).

- Remove the ACPI APIC/SMP entries from bootcd.ini. They will be made
  available via the Advanced Boot Options F8 menu in Debug builds, for
  testing purposes only, in a subsequent commit.

This commit is based upon an older SVN one:
svn path=/branches/setup_improvements/; revision=75273
2026-04-28 23:11:10 +02:00
Hermès Bélusca-Maïto
16e6da0e96 [FREELDR:SETUPLDR] Add the missing known platform-specific SourcePaths where TXTSETUP.SIF can be found
And slightly improve the search loop.

- Unconditionally look into the root directory as well, in order to cover
  all possible boot disk layouts in case someone customizes the ReactOS
  boot media layout.

- Improve the `InfOpenFile()` call error handling, in order to show the
  erroneous line _iff_ the call failed because of a wrong syntax in
  TXTSETUP.SIF . Distinguish it from a failure because the file doesn't
  exist in the source path being tested (in which case, no error is shown).
2026-04-28 23:11:09 +02:00
Hermès Bélusca-Maïto
4dc1ea6c8f [BOOTDATA] Move the legide.sys entry in txtsetup.sif into the x86-specific section
The legide.sys driver, introduced in commit ae2827f481, is compiled *ONLY*
for the x86 platform (not x64 nor the others) as specified in commit 7d33f7503b.
Fix the file installation copy by moving its entry into the x86-specific section.

Addendum to commit 7174935d73 (PR #8888). CORE-17256
2026-04-28 23:07:42 +02:00
Oleg Dubinskiy
2ec1f64c96 [HDAUDBUS] Sync to the current upstream
Import the following upstream commits:
30a807de7d
76dbc244c3
afb1d55817
da286c7824
5477b93a3b
which contain new supported devices added in inf file and two bugfixes from me, which fix all playback distortions with all XP-compatible HD audio codecs.
Tested and works fine with Realtek HD audio codec R2.74 on ALC660 controller at least, but it still needs to be tested with other codecs as well (like SigmaTel etc.).
Also update the commit hash in 3rd party files.txt appropriately.
2026-04-27 23:05:40 +02:00
Katayama Hirofumi MZ
262842c39b [SHLWAPI] PathIsDirectory: Support UNC Server Share (#8907)
Implementing missing features... We lack network support.
JIRA issue: CORE-19278, CORE-17923
Implement network support on PathIsDirectoryA/W functions.
2026-04-27 14:35:31 +09:00