376 Commits

Author SHA1 Message Date
Carl J. Bialorucki
34bf566dd9 [SYSSETUP][BOOT] Add ReactOS Server Core install type
- Write InstallationType to registry.
- If installing as Server Core, set shell to cmd.exe.
- Rename "Product Option" to "Install Type" and adjust relevant variable names.
- Reserve Nano Server installation type for future use.

JIRA issue: CORE-20645
2026-06-08 10:11:57 -05:00
Hermès Bélusca-Maïto
e45a75888c [BOOTDATA] Cleanup BitBucket and useless redundant HideDesktopIcons registry entries (#9046)
- The `HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons`
  entries were redundant between hivedef.inf and hivesft.inf.
  In addition, adding them were useless, because the "Network Places"
  (network location folder) icon they were specifying is already shown
  by default (like the others) on the desktop.

  This basically reverts commit 054c755d91 (r31545) -- originally added
  for the next commit 562c812846 (r31547).
  The "reason" given by this commit was also wrong: the registration
  of the network folder is done instead in its `HKCR\CLSID\<the_clsid>`
  registry key.

- Similarly, the `HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Bitbucket`
  registry key doesn't need to be pre-created; the shell will create it
  on-demand at runtime.

  This reverts commit bab735cf05 (r35203).
2026-05-21 22:37:23 +02:00
Hermès Bélusca-Maïto
74a0ac0251 [BOOTDATA] Hide the Internet desktop icon in the Live environment (#9046)
CORE-19203
2026-05-21 22:37:22 +02:00
Hermès Bélusca-Maïto
85f2a67a9e [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).
2026-05-15 19:17:02 +02:00
Hermès Bélusca-Maïto
8eea7255fd [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.
2026-05-15 19:17:01 +02:00
Hermès Bélusca-Maïto
f9effd17bc [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).
2026-05-15 19:17:00 +02:00
Hermès Bélusca-Maïto
a46e1e96ec [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.
2026-05-13 22:16:07 +02:00
Hermès Bélusca-Maïto
8cb3980766 [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.
2026-05-13 22:16:01 +02:00
Hermès Bélusca-Maïto
3a3b16af0d [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
2026-05-13 22:16:00 +02:00
Timo Kreuzer
e9a6d20847 [NLS] Add codepage 20932 (Japanese - EUC-JP) 2026-05-08 07:30:20 +00:00
Carl J. Bialorucki
c03dd1ba75 [BOOTDATA] Add commented out block for setting visual style 2026-05-07 08:34:25 -05:00
Carl J. Bialorucki
548f0740df [BOOTDATA] Add unattend.inf to livecd target
Needed for 0.4.16 release to set a default visual style
2026-05-07 08:34:25 -05:00
Hermès Bélusca-Maïto
5a8039fe51 [BOOTDATA] Shorten the debug-enabled boot entry labels 2026-05-06 22:29:48 +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
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
Carl J. Bialorucki
7174935d73 [BOOTDATA] Fix legide.sys load on boot (#8888)
After merging the new ATA driver, FreeLdr complains about not being able
to load legide.sys. Fix that by adding legide.sys driver to txtsetup.sif
so FreeLoader can load it.

Addendum to ae2827f481. CORE-17256
2026-04-22 10:28:38 +03:00
Dmitry Borisov
7d33f7503b [UNIATA] Disable the driver and enable the new ATA stack
Also fix descriptions for devices 1166:0241 and 1166:0242.
See https://bugzilla.kernel.org/show_bug.cgi?id=10424 and
aeb74914ef

CORE-17256
2026-04-21 15:01:22 -05:00
Hermès Bélusca-Maïto
a2269ef7f9 [BOOTDATA] hivesys.inf: "OsLoaderPath" and "SystemPartition" shouldn't be pre-hardcoded
These two registry values, stored in `HKEY_LOCAL_MACHINE\SYSTEM\Setup`,
are generated at runtime by the kernel; they are based on the current
values of: `LoaderBlock->NtHalPathName` and `LoaderBlock->ArcBootDeviceName`
respectively.

In particular, hardcoding `SystemPartition` to a default value
"\Device\Harddisk0\Partition1" , would be as random as hardcoding it
to anything else, since nothing justifies that there exists a partition
on the first harddisk, and if there is one, nothing guarantees that it
is one that was used to boot the operating system... Especially when
booting a LiveCD!
2026-04-16 17:43:40 +02:00
Hermès Bélusca-Maïto
26c126153f [BOOTDATA] Enable Alt Hex-numpad support by default in the LiveCD (#8680) 2026-03-08 18:35:43 +01:00
Hermès Bélusca-Maïto
ffdae843b4 [BOOTCDREGTEST] Install ReactOS in C:\Windows on the testbots to cope with unreliable Winetests (#8693)
ROSTESTS-416

More and more winetests we import from Wine hardcode the `C:\Windows`
path and thus, are brittle (read: unreliable) whenever they are run
on any other configuration where Windows (or ReactOS) is **NOT**
installed in this path.

Dedicated to Carl Bialorucki ;)
2026-03-08 18:20:11 +01:00
Katayama Hirofumi MZ
423d7031fe [CONIME][BOOTDATA][GITHUB][SDK] Add conime.exe (#8678)
Prepare for Console IME Input for East Asian.
JIRA issue: CORE-20243
- Modify .github/labeler.yml.
- Add base/system/conime/ .
- Modify boot/bootdata/hivesft.inf for Console
  settings.
- Add imm32!ImmCallImeConsoleIME prototype
  into <imm32_undoc.h>.
- Add IMS_CONSOLEIME_1A and IMS_CONSOLEIME_1B
  values into <imm32_undoc.h>, for WM_IME_SYSTEM
  message.
2026-02-26 09:28:22 +09:00
Hermès Bélusca-Maïto
08eddb2736 [BOOTDATA] Use HKCU instead of HKU\.DEFAULT to simplify the livecd.inf file
`HKU\.DEFAULT` is equivalent to `HKCU` for the LiveCD hives.
2026-02-21 17:32:33 +01:00
Katayama Hirofumi MZ
13c4ef9c40 [BOOTDATA][SHELL32][SHIMGVW] Populate HKCR\SystemFileAssociations (#8626)
JIRA issue: CORE-19355
- Modify boot/bootdata/hivecls.inf.
- Add dll/win32/shell32/res/rgs/
  systemfileassociations.rgs.
- Add dll/win32/shimgvw/res/
  systemfileassociations.rgs.
2026-01-29 07:13:30 +09:00
Katayama Hirofumi MZ
44200f9142 [BOOTDATA][NTUSER] Enable LoadIMM setting (#8602)
Enable IMM mode and reduce
imm32_apitest failures.
JIRA issue: CORE-19268
- Enable LoadIMM registry setting.
NOTE: We have already DontLoadCTFIME
setting to avoid loading CTF IME.
Supporting CTF IME will be future work.
2026-01-18 11:17:56 +09:00
Stanislav Motylkov
8785bed110 [BOOTDATA][INF][FONTS] Sync font substitutes for "MS Sans Serif"
Keep font substitutes in sync for LiveCD and localized installations.
Addendum to bac7d7f5cd and 0d7afe780e.

CORE‑15675 CORE‑15678
2025-12-31 11:36:21 +01:00
Erdem Ersoy
66018d5e84 [BOOTDATA] Update Turkish localization timezone (#8528)
CORE-20403
2025-12-24 13:46:26 +01:00
Mark Jansen
07904ea449 [BOOTDATA] Add missed files for the vmware video driver 2025-12-24 13:45:50 +01:00
Mark Jansen
dea54fb53a [BOOTDATA] update caroots.inf
CORE-20398
2025-12-24 13:43:53 +01:00
Dmitry Borisov
19df2e65ff [INF] Add support for the NEC Star Alpha C-bus bridge device (#8446)
This device is present in some PC-98 models without C-bus slots
and has a SubClass ID of 0x80 (other bridge) instead of 0x01 (ISA bridge),
thus a critical device database entry is required.

00:06.0 Bridge [0680]: NEC Corporation Star Alpha 2 [1033:002c] (rev 01)
    Subsystem: Unknown [0000:0000]
    Flags: bus master, medium devsel, latency 0

Addendum to commit 84fabd819d.

CORE-17977
2025-11-05 12:48:41 +03:00
Justin Miller
3fe5b8b0bb [SDK][WDF][USBDEX][NTOSKRNL_VISTA] Fully enable KMDF (#8396)
[SDK][WDFLDR] Add kmdf loader driver
[SDK][WDF] Add kmdf drver init static library
[SDK][WDF] Modify kmdf driver for working with wdfldr driver
[SDK][CDROM] Cdrom driver dynamically linking with kmdf
[SDK][WDF] Add kmdfdriver module type
[SDK][WDF][USBDEX][NTOSKRNL_VISTA] Fully enable KMDF
[KMDF][WDFLDR][WDF01000] Fix Windows 10 Compatibility WDFLDR and WDF01000
[WDF01000] NO_KERNEL_LIST_ENTRY_CHECKS for wdf01000 3rd party code

This PR is an accumulation of three peoples work, with the goal of the trying to get WDF to work like it should.
This has been tested in combination with some extra NT6+ ntoskrnl against multiple drivers.

---------

Co-authored-by: Max Korostil <mrmks04@yandex.ru>
Co-authored-by: Victor Perevertkin <victor.perevertkin@reactos.org>
Co-authored-by: Adam Słaboń <asaillen@protonmail.com>
Co-authored-by: Hermès BÉLUSCA - MAÏTO <hermes.belusca-maito@reactos.org>
2025-11-03 06:38:52 -08:00
Eric Kohl
42d2453918 [BOOTDATA][KBDCR] Add the Slovenian keyboard layout
Croatian and Slovenian share the same keyboard layout file.
- Add the Slovenian keyboard layout to the registry.
- Modify the keyboard layout file description accordingly.

CORE-16194
2025-10-10 16:26:54 +02:00
Eric Kohl
974807294f [BOOTDATA][INPUT][KBDCMK] Add Colemak keyboard layout
- Add the Colemak keyboard layout. It is not done yet. Some deadkey translations are still missing.
- Add missing strings for the German Extended (E1) keyboard layout.

CORE-4463
2025-10-09 00:04:34 +02:00
Eric Kohl
88ec843e02 [KBD] Add German Extended 1 keyboard layout 2025-10-05 11:39:26 +02:00
Hermès Bélusca-Maïto
9d3809febd [BOOTDATA] Disable logoff/password-change/workstation-lock in the LiveCD (#8373)
- Disable "Log Off" from the Start Menu and the C-A-D Security dialog;

- Disable the "Lock Workstation" and "Change Password" buttons in the
  Security dialog.

These are only "UI"-usability features to prevent the user from
logging off when running the LiveCD. (Logging off from the SYSTEM
account, and changing its password, don't make much sense.)

CORE-11397
2025-09-04 22:58:48 +02:00
Eric Kohl
88325f637b [BROWSER][BOOTDATA] Make the Browser service start properly
- Implement SvchostPushServiceGlobals() to make svchost happy.
- Add the Browser service to the netsvcs group.

CORE-18262
2025-08-10 10:47:03 +02:00
Eric Kohl
67e47135da [BOOTDATA] Revert unintended change and fix more keyboard layout IDs 2025-07-29 23:25:31 +02:00
Eric Kohl
f02ac8bc1e [BOOTDATA][KEYBOARDS] Add the German (IBM) keyboard layout 2025-07-29 21:52:20 +02:00
Eric Kohl
d908ad026d [BOOTDATA] Change the keyboard IDs of the Ristome, Ergo and Neo keyboard layouts.
Windows uses the keyboard layout IDs of the Ristome, Ergo and Neo layouts for the German(IBM), German Extended 1 and German Extended 2 keyboard layouts.
2025-07-29 21:42:26 +02:00
Eric Kohl
c62ef77697 [KEYBOARD] Rename kbdgr1.dll to kbdgrist.dll
kbdgr1.dll is reserved for the German (IBM) keyboard layout but it is currently used by the German (RISTOME) keyboard layout.
2025-07-28 21:20:40 +02:00
Eric Kohl
fade0c3b89 [BOOTDATA] Fix resource id of Malayalam keyboard layout display name 2025-07-27 13:58:02 +02:00
Eric Kohl
4e425b54b6 [BOOTDATA] Add missing Locale for Bengali (Bangaldesh)
This should fix CORE-20213. Please test again.
2025-07-23 22:25:46 +02:00
Justin Miller
b8f1da6483 [BOOT] Make ACPI always copy on amd64 (#8238)
This just makes it so ACPI.sys is always loaded and copied by the bootcd no matter what on amd64.
On x86 it can depend on whether we're using an ACPI hal but is set up to never boot with ACPI on the bootcd.
2025-07-14 22:51:15 -07:00
Katayama Hirofumi MZ
b199e9d05f [SHLWAPI][SDK][BOOTDATA] Implement SHGetAppCompatFlags (#8137)
Compatibility is a key that the system
works well.
JIRA issue: CORE-19278
- Add appcompat.c.
- Implement SHGetAppCompatFlags
  function.
- Add Str_SetPtrA prototype to
  <commctrl.h>.
- Add SHACF_... flags to
  <shlwapi_undoc.h>.
- Add comctl32 delay import
  (for Str_SetPtrA).
- Modify boot/bootdata/hivesft.inf
  for registry key
  HRESULTKLM\SOFTWARE\Microsoft\
  Windows\CurrentVersion\
  ShellCompatibility\Applications.
2025-06-22 09:52:37 +09:00
Timo Kreuzer
c495e0d727 ]HIVESYS] Add missing NLS files to registry 2025-06-19 17:36:40 +00:00
Whindmar Saksit
8ff8f676b3 [SYSDM][BROWSEUI][SHELL32][SDK] Added Advanced Performance Options property sheets (#8029) 2025-06-18 17:46:38 +02:00
Katayama Hirofumi MZ
24b2c4be8c [INF] intl.inf: Add [KbdLayoutIds] section (#8115)
Win2K internat.exe uses this section.
WinXP and Win2k3 have this section.
JIRA issue: CORE-19268
- Add [KbdLayoutIds] section and add values to intl.inf.
- Add some missing "Layout Id" for "SYSTEM\
  CurrentControlSet\Control\Keyboard Layouts" of
  hivesys.inf.
2025-06-16 17:16:19 +09:00
Katayama Hirofumi MZ
d809cd0f7f [BOOTDATA][NTUSER] Add DontLoadCTFIME and use it (#8110)
Improve CTF IME customization.
Use the proper names for CTF IME.
JIRA issue: CORE-19268
- In the registry key "HKLM\SOFTWARE\Microsoft\
  Windows NT\CurrentVersion\IMM", add
  DontLoadCTFIME value and set it to 1.
- Delete LoadCTFIME value to avoid user
  confusing.
- Rename UserIsCiceroEnabled function
  as UserIsCTFIMEEnabled.
- Rename SRVINFO_CICERO_ENABLED
  flag as SRVINFO_CTFIME_ENABLED.
2025-06-12 13:55:49 +09:00
Serge Gautherie
9fd4378def [BOOTDATA] hivesys.inf: Sort 5 NLS languages and locales (#8068)
- Remove '0414' redundant NLS Language. Addendum to 532d977 (r27709).
- Remove '0401' redundant NLS Language. Addendum to 3a88ebc (r63713).
- Sort '0845', '0c04' and '1004' NLS Locales

CORE-16766
2025-06-02 22:27:10 +02:00
Whindmar Saksit
d663eb4466 [SHELL32][CMD][SHLWAPI] Use the openas verb when invoking unknown file types (#7981)
CORE-20184
2025-05-30 18:46:24 +02:00
Whindmar Saksit
937954cf6c [BROWSEUI][SHELL32][SHLWAPI][BOOTDATA] Implement and use IRegTreeOptions (#7255) 2025-05-20 16:59:02 +02:00