Commit Graph

984 Commits

Author SHA1 Message Date
Mikhail Tyukin
f0a83320d7 [USERENV] Use Vista style users folder 2026-10-17 15:53:12 -04:00
Kenji Mouri / 毛利 研二
9b50475c19 [BOOTDATA] Make the RamDisk boot entries debug-only (#9711)
Makes testing easier on some environments with no storage driver available,
e.g. Hyper-V Generation 2 Virtual Machines.
2026-10-17 13:56:23 +03:00
Justin Miller
2b15735e98 [NTOS:IO][BOOTDATA] Implement the later Windows boot time out (#9718)
* [NTOS:IO] Wait for a boot device that is still enumerating
* [NTOS:IO][BOOTDATA] Give the boot device poll a timeout to work with
2026-10-16 23:06:20 +00:00
Luo Yufan
c139fd378b [TRANSLATION] Update Simplified Chinese (zh-CN) translation (#9697)
- [CALC] Improve Simplified Chinese (zh-CN) translation
- [CHARMAP] Update Simplified Chinese (zh-CN) translation
- [CLIPBRD] Improve Simplified Chinese (zh-CN) translation
- [EVENTCREATE] Improve Simplified Chinese (zh-CN) translation
- [MODE] Improve Simplified Chinese (zh-CN) translation
- [WHOAMI] Improve Simplified Chinese (zh-CN) translation
- [DXDIAG] Improve Simplified Chinese (zh-CN) translation
- [SOLITAIRE] Update Simplified Chinese (zh-CN) translation
- [WINMINE] Update Simplified Chinese (zh-CN) translation
- [KBSWITCH] Update Simplified Chinese (zh-CN) translation
- [EVENTVWR] Update Simplified Chinese (zh-CN) translation
- [SERVMAN] Update Simplified Chinese (zh-CN) translation
- [MSPAINT] Update Simplified Chinese (zh-CN) translation
- [PING] Improve Simplified Chinese (zh-CN) translation
- [NOTEPAD] Update Simplified Chinese (zh-CN) translation
- [RAPPS] Update Simplified Chinese (zh-CN) translation
- [REGEDIT] Update Simplified Chinese (zh-CN) translation
- [TASKMGR] Update Simplified Chinese (zh-CN) translation
- [SETUP:REACTOS] Update Simplified Chinese (zh-CN) translation
- [EXPLORER] Update Simplified Chinese (zh-CN) translation
- [DISKPART] Improve Simplified Chinese (zh-CN) translation
- [WINLOGON] Update Simplified Chinese (zh-CN) translation
- [FDEBUG] Improve Simplified Chinese (zh-CN) translation
- [ACCESS] Improve Simplified Chinese (zh-CN) translation
- [APPWIZ] Update Simplified Chinese (zh-CN) translation
- [DESK] Improve Simplified Chinese (zh-CN) translation
- [HOTPLUG] Update Simplified Chinese (zh-CN) translation
- [INPUT] Update Simplified Chinese (zh-CN) translation
- [MAIN] Improve Simplified Chinese (zh-CN) translation
- [MMSYS] Update Simplified Chinese (zh-CN) translation
- [POWERCFG] Update Simplified Chinese (zh-CN) translation
- [SYSDM] Update Simplified Chinese (zh-CN) translation
- [USRMGR] Improve Simplified Chinese (zh-CN) translation
- [CABVIEW] Update Simplified Chinese (zh-CN) translation
- [DESKADP] Update Simplified Chinese (zh-CN) translation
- [FONTEXT] Update Simplified Chinese (zh-CN) translation
- [NETSHELL] Update Simplified Chinese (zh-CN) translation
- [STOBJECT] Update Simplified Chinese (zh-CN) translation
- [ZIPFLDR] Update Simplified Chinese (zh-CN) translation
- [ACLUI] Improve Simplified Chinese (zh-CN) translation
- [COMDLG32] Improve Simplified Chinese (zh-CN) translation
- [JSCRIPT] Update Simplified Chinese (zh-CN) translation
- [MSI] Update Simplified Chinese (zh-CN) translation
- [NETCFGX] Update Simplified Chinese (zh-CN) translation
- [OLEACC] Improve Simplified Chinese (zh-CN) translation
- [SHLWAPI] Update Simplified Chinese (zh-CN) translation
- [SYSSETUP] Update Simplified Chinese (zh-CN) translation
- [USERENV] Update Simplified Chinese (zh-CN) translation
- [WININET] Update Simplified Chinese (zh-CN) translation
- [SSSTARS] Improve Simplified Chinese (zh-CN) translation
- [USER32] Improve Simplified Chinese (zh-CN) translation
2026-10-16 23:22:25 +03:00
Stanislav Motylkov
4d42bdf40a [TRANSLATION] Correct author attribution name to comply with guidelines
Revert nickname back to a real legal name. See #9697.
2026-10-16 22:54:09 +03:00
Daniel Victor
18944d7d50 [FREELDR] Add PARTITION_EFI define for MBR (#8861) 2026-10-14 00:41:55 +00:00
Timo Kreuzer
c7829951a1 [FREELDR] Fix waiting for key press on x64 2026-10-11 17:24:39 +00:00
Justin Miller
33bda347aa [NTFSLIB][SDK][BOOTSECT] NTFS Install support (#9316)
* [BASE][DRIVERS][SDK] Introduce USETUP NTFS formatting support
* [BOOTSECT][NTFSLIB] Ntfs boot fix
* [NTFSLIB] Bug fixes
* [NTFSLIB] Pass Win11

Co-authored-by: Carl J. Bialorucki <carl.bialorucki@reactos.org>
2026-10-10 23:59:26 +00:00
Justin Miller
dc63d0518b [NTFS][BOOT] Fix NTFS write support with old driver (#9319)
* [NTFS][BOOT] Allow NTFS Writes and don't blindly allow unsupported
writes
* [NTFS] Make the old driver semi functional
- Implement FileBasicInformation
- Follow CDFS/Fastfat architecture closer
- MiWritePage On a resident file
- Dont leave attributes stale
- Fix MDL Arch violations
- NTFS Flush buffer support
- Demote DPRINTS
- Don't leave attributes stale
- File deletion support
- Security attritube fixes
* [NTFS] Life time bug
2026-10-10 23:53:18 +00:00
Katayama Hirofumi MZ
7117e4f4dd [KEYBOARD][KBDFO][BOOTDATA] Implement Faeroese (fo-FO) kbdfo.dll (#9641)
https://kbdlayout.info/kbdfo
Support Faeroese (or Faroese) users by
adding their keyboard layout.
JIRA issue: CORE-13127
- Add kbdfo into dll/keyboard.
- Modify hivesys.inf and txtsetup.sif to
  support Faeroese.
2026-10-11 07:58:00 +09:00
Hermès Bélusca-Maïto
8a89cd421e [FREELDR:UEFI] Investigate a simpler PCI bus scanning algorithm 2026-10-10 21:56:20 +02:00
Alex Mendoza
4ca51e4f0d [FREELDR:UEFI] Implement PCI bus detection (#9374)
CORE-20760

Prefer MCFG for PCI bus count detection, if available.
Otherwise, perform a manual detection by enumerating all the
possible PCI buses and counting those present on the system.

Limit support only to both x86 and x64 builds for the time being.
2026-10-10 21:55:59 +02:00
Hermès Bélusca-Maïto
0d6369af12 [FREELDR][HALX86][SDK] Improve PCI_REGISTRY_INFO::NoBuses handling when 256 PCI buses are on the system (#9614)
SDK `pci.h`:

- Document the fact that `PCI_REGISTRY_INFO::NoBuses` wraps when the
  highest bus number is 255 (i.e. there are 256 PCI buses on the system).

- Introduce a `PCI_GET_NUM_OF_BUSES()` helper macro for retrieving the
  corrected number of buses from the `PCI_REGISTRY_INFO` structure.

  Rationale:
  `PCI_REGISTRY_INFO::NoBuses` is a `UCHAR` (0-255). Thus, this member
  would wrap to 0 for a system having exactly the maximum number of
  allowed PCI buses (256).
  In order to distinguish this case from the one where no PCI system
  (and no bus) is present, verify the `Major/MinorRevision` values.
  If they are initialized (and `NoBuses == 0`), this means that the
  system actually has 256 buses.


FreeLdr:

Add a Doxygen block for `hwpci.c!DetectPciBus()` and use the
`PCI_GET_NUM_OF_BUSES()` macro.


HalX86:

- Change the `PCI_REGISTRY_INFO_INTERNAL::NoBuses` member type to `USHORT`,
  so as to allow describing 256 PCI buses.

- Make `pcibus.c!HalpQueryPciRegistryInfo()` use the `PCI_GET_NUM_OF_BUSES()`
  macro for initializing the internal `NoBuses` value from the retrieved
  PCI registry information.

- Adjust the `BusCount` parameter type in the `HalpGetPciBridgeConfig()`
  and `HalpFixupPciSupportedRanges()` functions (bussupp.c).

- Minor comments fixes (bussupp.c).
2026-10-10 21:48:15 +02:00
Dmitry Borisov
7ca8143104 [PCIIDEX] Add basic support for HighPoint PATA controllers (#9131)
- Support booting from HighPoint PATA controllers
- Also fix a bug that could disable DMA support for VIA VT6421.
  For some reason ProgIF can be initialized to 0 on that controller:
  Starting controller 1106:3249.50-1106.3249-01.04.00
- Improve some debug messages

Tested by Thomas Schneider on an Abit BP6 board

CORE-20566
CORE-13858
2026-10-10 19:46:19 +00:00
William Kent
b6c71dec13 [FONTS] Substitute Source Sans Pro for Segoe UI (#9480)
I have tested this manually on Windows 10 and have found that, while the two fonts are not strictly metric-compatible, Source Sans Pro is "close enough" to Segoe UI that it doesn't wreck manual pixel-based control layouts.

In fact, Source Sans Pro is a tiny bit smaller than Segoe UI at 9pt (which is the minimum size recommended for use with Segoe UI).
2026-09-27 12:38:06 +02:00
Justin Miller
62884221f9 [BOOTDATA] Add some more chicken and egg directshow entries 2026-09-24 17:03:51 +00:00
Justin Miller
588c5df465 [MEDIA] Registring fixes for wine-10 d3d 2026-09-24 17:03:51 +00:00
Mikhail Tyukin
cedecf6703 [L3CODECA.ACM] Sync to Wine-10.0 2026-09-23 14:38:53 -04:00
Justin Miller
a5ee37be22 [NDISUIO][HIVESYS] Fix some ABI inconsistencies with NDISUIO (#9566)
* [HIVESYS] Register the Ndisuio service so the WLAN path works live
* [NDISUIO] store the bound adapter name without its terminator
* [NDISUIO] accept an OPEN_DEVICE name with or without a terminator
* [NDISUIO] report the needed size on a query overflow
2026-09-23 10:51:49 -07:00
Hermès Bélusca-Maïto
a97929d2e6 [FREELDR:ARCH] Move platform-independent code from arch/i386/hwpci.c into a separate file (#9541)
The new arch/hwpci.c file is to be included in compilation of any
FreeLdr port for platforms that are known to have PCI buses.

Will be used for PCI bus detection on UEFI, see PR #9374.

+ Update the source file headers.
2026-09-15 17:41:53 +02:00
Hermès Bélusca-Maïto
a954404320 [FREELDR] Improve build generation (#9521)
- Remove unnecessary entries from the include directories list.
- UEFILDR: move NT/ROS loader files to uefildr module.
2026-09-14 21:59:42 +02:00
Hermès Bélusca-Maïto
db6d5bee33 [BOOTDATA][PCIX][SDK] Fix minor "typos" (#9539)
- "PCI BIOS" instead of "ACPI BIOS".
- "PIR$" -> "$PIR".
2026-09-14 21:52:51 +02:00
George Bișoc
f83eb2fba7 [FREELDR] Initial implementation of the Red Screen of Hell popup
This is the start of the implementation of RSOH (aka Red Screen of Hell), an informational screen that pops up after ROS has shutdown due to overheating.
Currently there's a lot of stuff to work on such as thermal zones support in the kernel and a mechanism to set shutdown thermal event bit with RtlGetSetBootStatusData, so this popup won't show up for now.
2026-09-13 21:27:53 +02:00
Hermès Bélusca-Maïto
c7a64abb53 [FREELDR] Minor hwpci.c reformatting; SAL2-annotate *FindPciBios() (#9485)
See also PR #7416.
2026-09-05 19:00:39 +02:00
Whindmar Saksit
8e4de4a184 [MMC] Mmc .msc file launcher (#9468)
CORE-16431
2026-09-04 16:47:13 +02:00
Whindmar Saksit
763ce84cf5 [SHELL32] Implement bat/cmd drop target menu (#9435)
CORE-20745
2026-08-24 17:37:37 +02:00
Hermès Bélusca-Maïto
c7e1c79921 [FREELDR:PC] pcvideo.c!PcVideoGetBiosMode(): WidthInChars isn't optional
Addendum to commit bd881161ac, noticed by Serge Gautherie.
2026-08-19 22:55:52 +02:00
Hermès Bélusca-Maïto
f9943c7556 [FREELDR:UEFI] Simplify Reboot() fallback code (#9409)
CORE-11954

Addendum to commit 2a74f5e794 (PR #9092)

- The `__halt()` intrinsic is also defined for GCC-based builds,
  see: sdk/include/vcruntime/mingw32/intrin_x86.h

- The `_M_IX86` and `_M_AMD64` defines are also defined for GCC-based
  builds, see: sdk/include/reactos/msvctarget.h
2026-08-17 20:26:03 +02:00
Nguyen Duc Thinh
2a74f5e794 [FREELDR:UEFI] Implement missing cold reset in Reboot() function (#9092)
- Fix a WARN debug print (Reboot can be called from menu).
- Stabilize reboot fallback abstractions.
- Drop unimplemented path on ARM.

CORE-11954 CORE-17604
2026-08-17 14:14:36 +03:00
Nguyen Duc Thinh
7a80c49e56 [FREELDR:UEFI] Refactor the memory stack setup (#9092)
Add allocation failure handling and document the code in a better way.

CORE-11954
2026-08-17 14:06:41 +03:00
Alex Mendoza
7eab8fafec [FREELDR:UEFI] Determine boot partition number from device path (#9376)
Determine the actual partition number, walking the boot handle's device
path to find the Hard Drive media node, which carries the partition number.

- Walk EFI_DEVICE_PATH_PROTOCOL for the boot handle
  looking for a MEDIA_HARDDRIVE_DP node.
- Use HARDDRIVE_DEVICE_PATH.PartitionNumber (already 1-based per spec)
  as the real boot partition.

CORE-11954
2026-08-17 13:34:16 +03:00
Justin Miller
bd6e8e9e30 [BOOTDATA] $PIR chipset list (#9401)
This provides some of the chipsets for PCI IRQ routing miniport support (legacy, pre-ACPI machines).
Will be the foundational piece to us getting and IRQ arbiter on non-acpi boot.
2026-08-15 18:28:06 +00:00
Hermès Bélusca-Maïto
b299049410 [USERINIT] livecd.c: Change default actions in unattended mode, or if the installer cannot be found (#9363)
- Just after initially caching the path to the ReactOS installer, check
  whether an unattend.inf file can be found in its directory; otherwise,
  fall back to an unattend file in the current ReactOS directory.

- If this unattend.inf file specifies to run an unattended setup
  (`UnattendSetupEnabled` value set to `"yes"`), automatically start the
  ReactOS installer -- instead of starting the live environment desktop.

- If the user presses Ctrl+Shift+F10 however, disable unattended setup
  (suggestion to override the behaviour with a keypress from Whindmar Saksit).

NOTE: in the `WM_INITDIALOG` dialog handlers, use `SendMessageW`
to simulate the button presses. This also allows the invocation
of `EndDialog()` (from the button command handlers) while the
`WM_INITDIALOG` message is handled, so that the USER dialog manager
can then directly close the dialog without showing it first.
2026-08-14 20:05:29 +02:00
Samuel Stuart
26d8d3039e [FREELDR] Fix AMD64 builds on GCC/Clang (#9385)
Modern GCC and Clang versions now appear to generate an .edata section on FreeLoader.

This removes a check added in commit 5367ae5760, that was causing any
builds using CI or RosBE to not boot (FREELDR_IMAGE_CORRUPTION).
2026-08-10 18:53:39 +02:00
Hermès Bélusca-Maïto
bd881161ac [FREELDR:PC] pcvideo.c: Fix the PcVideoGetDisplayMode() helper for regular video BIOS mode
Fix a regression introduced in commit b050a4544e (PR #8506), when
detecting the initial video mode FreeLoader has been started with.

- In `PcVideoGetDisplayMode()`, for text modes, the number of "bytes per
  scan-line" is always equal to the screen width (number of characters)
  *TIMES* 2: one byte for character, one byte for attribute.

- Systematically reset the `BytesPerScanLine` in each `PcVideoSetModeWWxHH()`
  sub-routine.

- Make `PcVideoGetBiosMode()` return the screen width in characters, and
  compare it with what's stored in the BIOS data area for consistency.
2026-08-09 17:04:51 +02:00
Hermès Bélusca-Maïto
dce72d2c5c [FREELDR:PC] pcvideo.c: Comment on the BytesPerScanLine values in PcVideoSetMode()
- Slightly simplify also the return paths in `PcVideoSetMode()`.
- Note that the `VERTRES_*_SCANLINES` defines are for `PcVideoSetVerticalResolution()`
  (EGA/VGA only).
2026-08-09 17:04:50 +02:00
Whindmar Saksit
30b02d038e [SYSSETUP][BOOTDATA] Unattended execute GuiUnattended:DetachedProgram , SetupParams:UserExecute (#9276)
This PR implements two of the three hooks that allows you to run custom
applications during 2nd-stage setup (the 3rd hook is `...\$OEM$\Cmdlines.txt`,
but that requires file copy operations, etc.)

- `DetachedProgram` is documented[^1] for NT4...2003; it is started before
  installation and `UserExecute` after.
- `UserExecute` is a great place to install VM Guest Additions, one reboot
  less and you have shared folders/clipboard on the first normal boot.

[^1]: https://web.archive.org/web/20090902145959/http://technet.microsoft.com/en-us/library/cc757642(WS.10).aspx
2026-07-16 23:22:27 +02:00
Serge Gautherie
f9e3448f16 [BOOT][ROSTESTS][SHELL32][USERENV] Fix 'StartUp' typo (#8304)
CORE-18893
2026-07-11 23:47:53 +02:00
Carl J. Bialorucki
6117b1bdef [SYSSETUP][BOOTDATA] Add winevdm as an optional module (#9219)
- Add winevdm_setup as an optional module that can be preloaded on install
- Prompt to install both gecko and winevdm if the installer is not on disk
- Change "DisableGeckoInst" to "DisableAddonsInst" because we are installing more than just Gecko now
- No longer use appwiz,,install_gecko hack from wine appwiz
- Delete installer after successfully installing winevdm and gecko locally
2026-07-04 12:03:47 -05:00
Stanislav Motylkov
2f514a5127 [FREELDR] Workaround for BIOSes that report unusual geometry for CD-ROMs
This is needed for ISO filesystem driver to work correctly,
as it assumes 2048 bytes per sector for CD-ROM media.

Happens on 86Box with board `[i430FX] ASUS P/I-P55TP4XE`,
Bochs emulator with `01/17/97-i440FX-2A69HV3CC-00` BIOS,
and some other real machines.

CORE-20640
2026-06-25 19:58:51 +03:00
Dmitry Borisov
4c2fa234c4 [FREELDR:PC98] Report a more detailed system ID for sysdm control panel (#9194)
Report the machine model name for better user experience.

CORE-17977
2026-06-22 15:06:15 +03:00
Eric Kohl
a8f14ffdf7 [BOOTDATA] Add NetSh configuration data to load ifmon.dll by default 2026-06-22 01:26:10 +02:00
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
Thomas Anderson
fbaccdf3cc [FDEBUG] Update French (fr-FR) translation (#8954) 2026-05-28 18:10:20 +03: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
9761df14f0 [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.
2026-05-13 22:16:08 +02:00